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:
public DataView recopilarDatos()
{
DataSet dtincidencias = new DataSet();
string estadoId = drp_estado.SelectedValue;
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";
//si hay seleccion de algun estado filtrarlo
if (!estadoId.Equals("-1"))
sOracleIncidencias += String.Format(" and e.estado='{0}'", estadoId);
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();
dtg_incidencias.DataBind();
}
Salu2