protected void CmbRemates_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;

        Nomina<co_re_remates_no> data = null;
        co_re_remates_no Nomina = new co_re_remates_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);


        if (hid_id_remate.Text != @"")
        {
          Nomina.id_remate = int.Parse(hid_id_remate.Text);
          data = new bf_re_remates().GetNomina(Nomina);
        }
        else
        {
          Nomina.id_remateEstadoWeb = Constantes.ESTADO_REMATE_PUBLICADO;
          Nomina.id_rematetipo = ID_REMATETIPO;
          Nomina.id_familia = Constantes.FAMILIA_PROPIEDADES;
          data = new bf_re_remates().GetNominaAgrupadosDisponibles(Nomina);
        }
        IList<object> lista = new List<object>();


        foreach (co_re_remates_no no in data.DataSource)
        {
          lista.Add(new
          {
            id_remate = no.id_remate,
            rem_nombre = no.rem_nombre
          });
        }

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

        if (hid_id_remate.Text != @"")
        {
          int id_remate = int.Parse(hid_id_remate.Text);
          cmbRemates.SetValueAndFireSelect(id_remate);
        }
      }
      catch (Exception ex)
      {
        Mensajes.Error(ErrorText.ERROR_CARGAR_REMATES_AGRUPADOS, "wf_agrupador_remates_adm.CmbRemates_OnReadData", ex);
      }
    }
    protected void StrRemates_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;

        co_re_remates_no Nomina = new co_re_remates_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);
        
 

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



        Nomina<co_re_remates_no> data = new bf_re_remates().GetNominaAgrupados(Nomina);

        foreach (co_re_remates_no n in data.DataSource)
        {

          temp.Add(
              new
              {
                rem_nombre = n.rem_nombre,
                rem_fechaagrupa = n.rem_fechaagrupa.Fecha,
                us_consuser = n.us_consuser,
                id_remate = n.id_remate,
                id_remate_base = n.id_remate_base.ToString(),
                rem_lugarRemate = n.rem_lugarRemate,
                rem_fecha = n.rem_fecha.Fecha,
                rem_nombreAgrupado = n.rem_nombreAgrupado + " - " + n.rem_fecha.Fecha.ToShortDateString()
              });
        }

        strRemates.DataSource = temp;
        strRemates.PageSize = limit;
        PageProxy pageProxy = strRemates.Proxy[0] as PageProxy;
        if (pageProxy != null) pageProxy.Total = data.Registros;
        strRemates.DataBind();
      }
      catch(Exception ex)
      {
        Mensajes.Error(ErrorText.ERROR_CARGAR_REMATES_AGRUPADOS, "wf_agrupador_remates.StrRemates_OnReadData" ,ex);
      }
    }
        protected void st_grilla_OnReadData(object sender, StoreReadDataEventArgs e)
        {
            int start = e.Start;
            int limit = NumInt.Init(e.Parameters.GetParameter("limit").Value);
            limit = limit == 0 ? e.Limit : limit;
            int page = (start / limit) + 1;

            co_re_remates_no Nomina = new co_re_remates_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);

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

            AgregarFiltros(ref Nomina);

            BotonesNomina botones = new BotonesNomina(Session);
            Nomina<co_re_remates_no> data = new bf_re_remates().GetNomina(Nomina);

            foreach (co_re_remates_no n in data.DataSource)
            {
                string sUrlSitio = Constantes.URL_PRINCIPAL_ADMIN;
                string sUrlBaseMaquinaria = Constantes.URL_MAQUINARIA_REMATE_SOCIALNETWORK;
                string sUrlBasePropiedades = Constantes.URL_REMATE_PROPIEDADES_SOCIALNETWORK;
                string social = string.Empty;
                if (n.id_familia.Equals(Constantes.FAMILIA_BIENESMUEBLES))
                {
                    social = sUrlSitio + sUrlBaseMaquinaria + n.id_remate;
                }
                else if (n.id_familia.Equals(Constantes.FAMILIA_PROPIEDADES))
                {
                    social = sUrlSitio + sUrlBasePropiedades + n.id_remate;
                }

                listRemates.Add(
                    new
                    {
                        id_remate = n.id_remate,
                        rem_nombre = n.rem_nombre,
                        rem_fecha = n.rem_fecha.Fecha.ToShortDateString(),
                        rem_hora = n.rem_hora.Fecha,
                        id_tiporemate = n.id_tiporemate,
                        rt_rematetipo = n.rt_rematetipo,
                        re_remateEstado = n.re_remateEstado,
                        id_remateEstadoWeb = n.id_remateEstadoWeb,
                        rw_remateEstadoWeb = n.rw_remateEstadoWeb,
                        rem_lugarRemate = n.rem_lugarRemate,
                        rem_nombreIng = n.rem_nombreIng,
                        rem_fechaUTC = n.rem_fechaUTC.Fecha,
                        rem_horaUTC = n.rem_horaUTC.Fecha,
                        rem_horaDesde = n.rem_horaDesde.Fecha,
                        rem_horaHasta = n.rem_horaHasta.Fecha,
                        rem_lugarExhibicion = n.rem_lugarExhibicion,
                        rem_fechaExhibicionDesde = n.rem_fechaExhibicionDesde.Fecha,
                        rem_fechaExhibicionDesde2 = n.rem_fechaExhibicionDesde2.Fecha,
                        rem_fechaExhibicionHasta = n.rem_fechaExhibicionHasta.Fecha,
                        rem_fechaExhibicionHasta2 = n.rem_fechaExhibicionHasta2.Fecha,
                        rem_descripcion = n.rem_descripcion,
                        rem_descripcionIng = n.rem_descripcionIng,
                        rem_garantiaKey = n.rem_garantiaKey,
                        rem_contacto = n.rem_contacto,
                        rem_UrlProcedimiento = n.rem_UrlProcedimiento,
                        rem_destacado = n.rem_destacado,
                        rem_urlFichaRemate = n.rem_urlFichaRemate,
                        id_loteoEnRemate = n.id_loteoEnRemate,
                        id_rematetipo = n.id_rematetipo,
                        re_rematetipo = n.rt_rematetipo,
                        rem_precioMinimo = n.rem_precioMinimo,
                        id_familia = n.id_familia,
                        fa_familia = n.fa_familia,
                        visitas = n.cont_cuenta_visitas,
                        descargabases = n.cont_cuenta_bases,
                        social = social,
                        btnCargarImagenes = botones.btnCargarImagenes,
                        btnActaRemate = botones.btnActaRemate,
                        btnCatalogoRemate = botones.btnCatalogoRemate,
                        btnNominaLotes = botones.btnNominaLotes,
                        btnEliminarRemate = botones.btnEliminarRemate,
                        esPropietario = EsPropietario(n.id_remate) || EsAdministradorRemate()
                    });
            }

            st_grilla.DataSource = listRemates;
            st_grilla.PageSize = limit;
            PageProxy pageProxy = st_grilla.Proxy[0] as PageProxy;
            if (pageProxy != null) pageProxy.Total = data.Registros;
            st_grilla.DataBind();
        }
        private void CrearExcel(ref IList<object> lista, DirectEventArgs e, bool tienelimite)
        {
            if (lista == null) throw new ArgumentNullException("lista");
            JObject sortinfo = (JObject)JsonConvert.DeserializeObject(e.ExtraParams["SortInfo"]);

            co_re_remates_no Nomina = new co_re_remates_no();
            lista = new List<object>();

            Nomina.Pagina = 1;
            Nomina.RegistrosPorPaginas = 1;
            Nomina.ColumnaOrden = sortinfo["field"].ToString();
            Nomina.OrdenColumna = FwpServerControls.FwpDataGridDataBound.Orden.DESC;
            AgregarFiltros(ref Nomina);

            Nomina<co_re_remates_no> data = new bf_re_remates().GetNomina(Nomina);

            Nomina.Pagina = 1;
            if (tienelimite)
            {
                Nomina.RegistrosPorPaginas = data.Registros < 65000 ? data.Registros : (int)(65000);
            }
            else
            {
                //idea principal de esto es enviar la todos los registros, pero por temas de rendimiento se limito.
                Nomina.RegistrosPorPaginas = data.Registros < 100000 ? data.Registros : (int)(100000);
            }

            //recuepra la totalidad de datos permitidos
            data = new bf_re_remates().GetNomina(Nomina);

            foreach (co_re_remates_no n in data.DataSource)
            {
                lista.Add(
                    new
                    {
                        rem_nombre = n.rem_nombre,
                        fa_familia = n.fa_familia,
                        re_rematetipo = n.rt_rematetipo,
                        rw_remateEstadoWeb = n.rw_remateEstadoWeb,
                        rem_fecha = n.rem_fecha.Fecha.ToShortDateString(),
                        rem_lugarRemate = n.rem_lugarRemate,
                        visitas = n.cont_cuenta_visitas,
                        descargabases = n.cont_cuenta_bases,
                    });
            }


        }
 private void AgregarFiltros(ref co_re_remates_no nomina)
 {
     nomina.rem_nombre = FiltrosNomina.ValidarFiltros<string>(nomina.rem_nombre, filtertxt_rem_nombre.Text);
     nomina.rem_lugarRemate = FiltrosNomina.ValidarFiltros<string>(nomina.rem_lugarRemate, filtertxt_rem_lugarRemate.Text);
     if (filter_cmb_familias.SelectedItem.Value != null)
     {
         nomina.id_familia = FiltrosNomina.ValidarFiltros<int>(nomina.id_familia, filter_cmb_familias.SelectedItem.Value);
     }
     if (filter_cmb_rematetipo.SelectedItem.Value != null)
     {
         nomina.id_tiporemate = FiltrosNomina.ValidarFiltros<int>(nomina.id_tiporemate, filter_cmb_rematetipo.SelectedItem.Value);
     }
     if (filter_cmb_remateEstadoWeb.SelectedItem.Value != null)
     {
         nomina.id_remateEstadoWeb = FiltrosNomina.ValidarFiltros<int>(nomina.id_remateEstadoWeb, filter_cmb_remateEstadoWeb.SelectedItem.Value);
     }
 }