2010-08-10 11 views
5

Çalışmıyor gibi görünen aşağıdaki kod var. Page_Load işlevinde DataSet'i doldurup sonuçları ızgara görünümünde görüntülüyorum.RowFilter bir ızgara görünümünde görüntülemek için bir DataTable

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

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

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

Yine GRIDVIEW bu orignally yüklenmiş verileri gösterir, ve filtre veriler:

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

Bazı veri filtreleme için bu fonksiyonu bağlantıları (yearID bir parametre olarak geçirilir) sahip . Düşünebildiğim tek şey, Page_Load işlevinde DataTable kullanmıyorum. Başka neyi özlüyorum? Bu RowFilter açıklamada şey olmalı

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

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

:

+1

'DataTable newsTable = newsDataSet.Tables [0]', ** lütfen **. – SLaks

+0

'yearID' nedir? – SLaks

+0

yearID, verileri filtrelemek için yıl değeri olarak başlayan bir parametredir, ancak tam bir tarihe geçirdim. İşlevdeki kodu değiştirdim: newsDataSet.Tables [0] .DefaultView.RowFilter = "NewsDate2> '01/01/2010 '"; GridViewMain.DataSource = newsDataSet.Tables [0] .DefaultView; GridViewMain.DataBind(); ancak yine de aynı şeyi yapar (verileri filtrelememek). –

cevap

7

Adrian

sayesinde hiç işlev kodu değiştirildi.

İlgili konular