2010-08-10 16 views
5

Tengo el siguiente código que no parece funcionar. En la función Page_Load llene el DataSet y visualice los resultados en una vista de cuadrícula.RowFilter en una DataTable para mostrar en una vista de cuadrícula

newsCommand = new SqlCommand("SQL code here", dbConnection); 
newsDataSet = new DataSet(); 
newsDataAdapter = new SqlDataAdapter(newsCommand); 
newsDataAdapter.SelectCommand = newsCommand; 
newsDataAdapter.Fill(newsDataSet, "Bulletins"); 

if (!Page.IsPostBack) 
{ 
    GridViewMain.DataSource = newsDataSet; 
    GridViewMain.DataBind(); 
} 

tengo algunos enlaces que requieren esta función para filtrar los datos (yearID se pasa como un parámetro):

DataTable newsTable = new DataTable(); 
newsTable = newsDataSet.Tables[0]; 

DataView dvData = new DataView(newsTable); 
dvData.RowFilter = "Year > '" + yearID + "'"; 

GridViewMain.DataSource = dvData; 
GridViewMain.DataBind(); 

Sin embargo, el gridview muestra los datos que ¡Originalmente se carga, y no los datos filtrados . Lo único que puedo pensar es que no estoy usando DataTable en la función Page_Load. ¿Qué más me estoy perdiendo?

Gracias,

Adrian

+1

'DataTable newsTable = newsDataSet.Tables [0]', ** please **. – SLaks

+0

¿Qué es 'yearID'? – SLaks

+0

yearID es un parámetro que comenzó como un valor anual para filtrar datos, pero lo modifiqué a una fecha completa. Acabo de cambiar el código en la función a: newsDataSet.Tables [0] .DefaultView.RowFilter = "NewsDate2> '01/01/2010 '"; GridViewMain.DataSource = newsDataSet.Tables [0] .DefaultView; GridViewMain.DataBind(); pero sigue haciendo lo mismo (sin filtrar los datos). –

Respuesta

7

cambió el código de la función a:

DataView dataView = newsDataSet.Tables[0].DefaultView; 
dataView.RowFilter = "NewsDate2 Like '%" + yearID + "'"; 

GridViewMain.DataSource = dataView; 
GridViewMain.DataBind(); 

Debe haber sido algo en la declaración RowFilter.

Cuestiones relacionadas