Principales respuestas
Filtrar gridview por rango de fechas

Pregunta
-
Amigos hola , necesito de su ayuda , tengo un gridview que lo cargue con un datasource desde aspx y ahora estoy tratando de filtrarlo por fechas y para esto cree un procedimiento almaceno que llamo desde el codebind , pero al momento de lanzar el evento del botón me sale este error
Tanto DataSource como DataSourceID están definidos en 'GridView1'. Quite una definición
este es el método que eh implementado
private void Filtrar()
{
DateTime fecha1 = Convert.ToDateTime(Desde.Text);
DateTime fecha2 = Convert.ToDateTime(Hasta.Text);
string cn = ConfigurationManager.ConnectionStrings["DBCS"].ConnectionString;
SqlDataAdapter adp = new SqlDataAdapter("FiltrarAsignacion", cn);
adp.SelectCommand.CommandType = CommandType.StoredProcedure;
adp.SelectCommand.Parameters.Add("@Fecha", SqlDbType.DateTime).Value = Convert.ToDateTime(fecha1);
adp.SelectCommand.Parameters.Add("@Fecha2", SqlDbType.DateTime).Value = Convert.ToDateTime(fecha2);
DataTable dt = new DataTable();
adp.Fill(dt);
dgvInstrumentador.DataSourceID = Nothing;
dgvInstrumentador.DataSource = dt;
dgvInstrumentador.DataBind();
}hay alguna forma de llamar el datasource que tiene el grid y filtrarlo por fechas ,espero me puedan ayudar .
Daniel
miércoles, 22 de enero de 2020 21:24
Respuestas
-
Leandro muchas gracias por tu respuestas , logre hacerlo utilizando el datasource ya definido en el aspx , lo que hice fue en el codebind invoque el sqldatasource1 y llamar el filterExpression y luego declare la sentencia que necesitaba para filtrar por rango de fechas, se los comparto por si alguien llega a necesitarlo.
SqlDataSource1.FilterExpression = "FechaCirugia >= '" + fecha1+ "'and FechaCirugia<='" + fecha2+"' ";
dgvInstrumentador.DataBind();Daniel
- Marcado como respuesta Dannycv012 jueves, 23 de enero de 2020 13:29
jueves, 23 de enero de 2020 13:29
Todas las respuestas
-
hola
>>Tanto DataSource como DataSourceID están definidos en 'GridView1'
Porque defines un DataSourceID sino vas a vincular con controles al grid?
Podrias quitar el SqlDataSource
BaseDataBoundControl.DataSourceID Property
si configuras la conexion a la DB usando controls en el html despues tienes que splicar filtros por medio de este o sino quitarlos
Si quiere filtrar por medio del control tienes que usar el
SqlDataSource.SelectParameters Property
----
Si quieres hacerlo desde codigo quita el valor del DataSourceID y en el evento click de algun boton invocar ese codigo que publicaste
dgvInstrumentador.DataSourceID = Nothing;
quitalo desde el html, sino el control se vinculara a los datos cuando carga
saludos
Leandro Tuttini
Blog
MVP Profile
Buenos Aires
Argentina- Propuesto como respuesta Diana AcuñaModerator miércoles, 22 de enero de 2020 22:15
miércoles, 22 de enero de 2020 21:52 -
Leandro muchas gracias por tu respuestas , logre hacerlo utilizando el datasource ya definido en el aspx , lo que hice fue en el codebind invoque el sqldatasource1 y llamar el filterExpression y luego declare la sentencia que necesitaba para filtrar por rango de fechas, se los comparto por si alguien llega a necesitarlo.
SqlDataSource1.FilterExpression = "FechaCirugia >= '" + fecha1+ "'and FechaCirugia<='" + fecha2+"' ";
dgvInstrumentador.DataBind();Daniel
- Marcado como respuesta Dannycv012 jueves, 23 de enero de 2020 13:29
jueves, 23 de enero de 2020 13:29