![]() |
Mantener filtro en la paginación Hola a todos, Tengo problemas con mantener el filtro (opción que elijo en un dropdownlist) cuando paso de página en el datagrid. Este es mi código: private void Page_Load(object sender, System.EventArgs e) { if (!IsPostBack) { drp_estado.Items.Clear(); string queryString_estado = "select estado,cod_estado from u_estado"; NEGOCIO.Funciones.cargar_dropdownlist(queryString_ estado,drp_estado,"estado","cod_estado" dtg_incidencias.DataSource=recopilarDatos(); dtg_incidencias.DataBind(); } } public DataView recopilarDatos() { DataSet dtincidencias=new DataSet(); string sOracleIncidencias="select i.cod_incidencia, i.descripcion, a.nombre,i.fecha_incidencia, o.origen, e.estado from u_origen o, u_incidencia i, u_activo a, u_estado e, u_activo_concreto ac where i.cod_activo_concreto=ac.cod_activo_concreto and ac.cod_activo=a.cod_activo and i.cod_estado=e.cod_estado and i.cod_origen=o.cod_origen"; using (OracleConnection connection = new OracleConnection(connectionString)) { connection.Open(); OracleDataAdapter objDA=new OracleDataAdapter(sOracleIncidencias,connection); objDA.Fill(dtincidencias,"u_incidencia"); DataView dvincidencias=new DataView(dtincidencias.Tables["u_incidencia"]); return dvincidencias; } } public DataView recopilarDatos_conFiltro() { DataSet dtincidencias=new DataSet(); string sOracleIncidencias="select i.cod_incidencia, i.descripcion, a.nombre,i.fecha_incidencia, o.origen, e.estado from u_origen o, u_incidencia i, u_activo a, u_estado e, u_activo_concreto ac where i.cod_activo_concreto=ac.cod_activo_concreto and ac.cod_activo=a.cod_activo and i.cod_estado=e.cod_estado and i.cod_origen=o.cod_origen and e.estado='" + drp_estado.SelectedValue + "'"; using (OracleConnection connection = new OracleConnection(connectionString)) { connection.Open(); OracleDataAdapter objDA=new OracleDataAdapter(sOracleIncidencias,connection); objDA.Fill(dtincidencias,"u_incidencia"); DataView dvincidencias=new DataView(dtincidencias.Tables["u_incidencia"]); return dvincidencias; } } private void dtg_incidencias_PageIndexChanged(object sender, System.Web.UI.WebControls.DataGridPageChangedEvent Args e) { dtg_incidencias.CurrentPageIndex=e.NewPageIndex; dtg_incidencias.DataSource=recopilarDatos(); dtg_incidencias.DataBind(); } private void drp_estado_SelectedIndexChanged(object sender, System.EventArgs e) { dtg_incidencias.DataSource=recopilarDatos_conFiltr o(); dtg_incidencias.DataBind(); } Alguien puede ayudarme a mantener la opción elegida en el dropdownlist cuando cambio de página y que se mantenga ese filtro también a la hora de visualizar los resultados en el datagrid al cambiar de página. Muchas gracias |
Respuesta: Mantener filtro en la paginación Hola En el evento de cambio de pagina no llamas a recopilar datos con filtro, por tanto te traera los datos sin filtrar. Debes comprobar si alguna opcion del filtro esta activa y en ese caso llamar a recopilar datos con filtro y si no llamar a recopilar datos Saludos |
Respuesta: Mantener filtro en la paginación podrías tener dentro de tu dropdownlist un item que diga algo como "seleccione uno" con value "-1" (por ejemplo) si desde code validas que si es "-1" no filtre quedando algo así: (ya no sería necesaria tu funcion recopilarDatos_conFiltr o(); solamente te quedarías con recopilarDatos(); Ejemplo (organizando un poco el code) Código: |
| La zona horaria es GMT -6. Ahora son las 10:56. |
Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.