private void AgregarFiltrosCategoria(ref co_mv_mocategorias_no nomina)
 {
   nomina.moca_categoria = FiltrosNomina.ValidarFiltros<string>(nomina.moca_categoria, filter_ca_categoria.Text);
 }
    protected void strCategorias_ReadData(object sender, StoreReadDataEventArgs e)
    {
      try
      {
        int start = e.Start;
        int limit = e.Limit;
        int page = (start / limit) + 1;

        co_mv_mocategorias_no Nomina = new co_mv_mocategorias_no();
        Nomina.Pagina = page;
        Nomina.RegistrosPorPaginas = limit;
        Nomina.ColumnaOrden = e.Sort[0].Property;
        Nomina.OrdenColumna = (FwpServerControls.FwpDataGridDataBound.Orden)Enum.Parse(typeof(FwpServerControls.FwpDataGridDataBound.Orden), e.Sort[0].Direction.ToString(), true);
        Nomina.id_mofamilia = e.Parameters["id_mofamilia"].ValidaEntero("id_mofamilia");

        IList<object> lista = new List<object>();

        AgregarFiltrosCategoria(ref Nomina);

        Nomina<co_mv_mocategorias_no> data = new bf_mv_mocategorias().GetNomina(Nomina);

        foreach (co_mv_mocategorias_no no in data.DataSource)
        {
          lista.Add(new
          {
            id_mocategoria = no.id_mocategoria,
            moca_categoria = no.moca_categoria,
            moca_orden = no.moca_orden,
            id_mofamilia = no.id_mofamilia,
            mofa_familia = no.mofa_familia
          });
        }

        strCategoria.DataSource = lista;
        strCategoria.PageSize = limit;
        PageProxy pageProxy = strCategoria.Proxy[0] as PageProxy;
        if (pageProxy != null) pageProxy.Total = data.Registros;
        strCategoria.DataBind();

      }
      catch (Exception ex)
      {
        Mensajes.Error(ErrorText.ERROR_CARGAR_CATEGORIAS, "wf_fam_cat_sub_mobile.strCategorias_ReadData", ex);
      }
    }