2010-08-10 20 views
5

Ich habe den folgenden Code, der nicht zu funktionieren scheint. In der Page_Load-Funktion befülle ich das DataSet und zeige die Ergebnisse in einer Rasteransicht an.RowFilter auf einer DataTable in einer Rasteransicht

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(); 
} 

Ich habe einige Verbindungen, die diese Funktion aufrufen, um die Daten zu filtern (yearID wird als Parameter übergeben wird):

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

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

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

Doch der Grid zeigt die Daten, die er orignally geladen, und nicht die gefilterten Daten . Das einzige, was mir einfällt, ist, dass ich die DataTable nicht in der Page_Load-Funktion verwende. Was fehlt mir noch?

Danke,

Adrian

+1

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

+0

Was ist 'yearID'? – SLaks

+0

yearID ist ein Parameter, der als Jahreswert zum Filtern von Daten gestartet wurde, aber ich habe ihn zu einem vollen Datum geändert. Ich habe gerade den Code in der Funktion geändert: newsDataSet.Tables [0] .DefaultView.RowFilter = "NewsDate2> '01/01/2010 '"; GridViewMain.DataSource = newsDataSet.Tables [0] .DefaultView; GridViewMain.DataBind(); aber es tut immer noch das gleiche (nicht die Daten filtern). –

Antwort

7

den Code in der Funktion geändert:

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

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

Es ist etwas in der RowFilter Aussage gewesen sein muss.

Verwandte Themen