protected void str_grilla_OnReadData(object sender, StoreReadDataEventArgs e)
    {
      try
      {
        int start = e.Start;
        int limit = NumInt.Init(e.Parameters.GetParameter("limit").Value);
        limit = limit == 0 ? e.Limit : limit;
        int page = (start / limit) + 1;
        int id_remate = hid_idRemate.Text.ValidaEntero("id_remate");

        co_rl_loteos_no Nomina = new co_rl_loteos_no();
        Nomina.Pagina = page;
        Nomina.RegistrosPorPaginas = e.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_remate = id_remate;

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

        AgregarFiltros(ref Nomina);

        BotonesNominaLotes botones = new BotonesNominaLotes(Session);

        Nomina<co_rl_loteos_no> data = new bf_rl_loteos().GetNomina(Nomina);
        co_re_remates remate = new bf_re_remates().GetData(id_remate);
        if (remate.id_familia != Constantes.FAMILIA_BIENESMUEBLES) {
          MenuCargaMasivaSAP.Hidden = true;
        }
        string sUrlSitio = FamiliaPreview.ObtenerUrlVistaPreviaLotes(remate);

        foreach (co_rl_loteos_no n in data.DataSource)
        {
          //IList<co_tg_contadores> listaContadores = new bf_tg_contadores().GetData(new co_tg_contadores { id_origen = n.id_loteo, id_tipocontador = { id = remate.id_rematetipo.id==Constantes.REMATETIPO_REMATE?Constantes.TIPO_LOTES:remate.id_rematetipo.id} });
          IList<co_tg_contadores> listaContadores = new bf_tg_contadores().GetData(new co_tg_contadores { id_origen = n.id_loteo, id_tipocontador = { id = Constantes.TIPO_LOTES } });
          n.visitas = listaContadores.Count > 0 ? listaContadores[0].cont_cuenta : 0;
          bool esRemate = remate.id_rematetipo.id == Constantes.REMATETIPO_REMATE;
          bool esVentaDirecta = remate.id_tiporemate.id == Constantes.REMATETIPO_VENTA_DIRECTA;

          lista.Add(new
          {
            id_loteo = n.id_loteo,
            lo_numero = n.lo_numero,
            lo_titulo = n.lo_titulo,
            lo_descripcion = n.lo_descripcion,
            lo_minimo = n.mo_moneda + " " + n.lo_minimo.ToString("N0"),
            le_loteoestado = n.le_loteoestado,
            fa_familia = n.fa_familia,
            ca_categoria = n.ca_categoria,
            subca_subcategoria = n.subca_subcategoria,
            re_region = n.re_region,
            co_comuna = n.co_comuna,
            id_familia = n.id_familia,
            visitas = n.visitas,
            url = sUrlSitio+n.id_loteo,
            btnEliminarLote = botones.btnEliminarLote,
            notifica = (esRemate || esVentaDirecta) && NotificacionMovil.EsMovil(n.id_loteo)
          });
        }

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

      }
      catch (Exception ex)
      {
        Mensajes.Error(ErrorText.ERROR_CARGAR_LISTADO_LOTES, "wf_pa_loteos_no.str_grilla_OnReadData", ex);
      }
    }
 private void AgregarFiltros(ref co_rl_loteos_no nomina)
 {
   nomina.lo_numero = FiltrosNomina.ValidarFiltros<int>(nomina.lo_numero,
     filter_lo_numero.Text);
   nomina.lo_titulo = FiltrosNomina.ValidarFiltros<string>(nomina.lo_titulo, filter_lo_titulo.Text);
   nomina.lo_descripcion = FiltrosNomina.ValidarFiltros<string>(nomina.lo_descripcion, filter_lo_descripcion.Text);
   nomina.lo_minimo = FiltrosNomina.ValidarFiltros<decimal>(nomina.lo_minimo,
     filter_lo_minimo.Text);
   if (filter_le_loteoestado.SelectedItem.Value != null)
   {
     nomina.id_loteoestado = FiltrosNomina.ValidarFiltros<int>(nomina.id_loteoestado,
       filter_le_loteoestado.SelectedItem.Value);
   }
   nomina.fa_familia = FiltrosNomina.ValidarFiltros<string>(nomina.fa_familia, filter_fa_familia.Text);
   nomina.ca_categoria = FiltrosNomina.ValidarFiltros<string>(nomina.ca_categoria, filter_ca_categoria.Text);
   nomina.subca_subcategoria = FiltrosNomina.ValidarFiltros<string>(nomina.subca_subcategoria,
     filter_subca_subcategoria.Text);
   nomina.re_region = FiltrosNomina.ValidarFiltros<string>(nomina.re_region, filter_re_region.Text);
   nomina.co_comuna = FiltrosNomina.ValidarFiltros<string>(nomina.co_comuna, filter_co_comuna.Text);
 }