2013-04-23 113 views
1

這並不容易,據我所知,當DataSource被分配給DataTable(使用DefaultView.RowFilter)或BindingSource(使用Filter)時,我只能過濾DataGridView中的行。但我的DataGridView的DataSource是這樣的:在我的DataGridView中過濾行?

myDataGridView.DataSource = myDataSet; 
myDataGridView.DataMember = "myTableName"; 
//filtering rows using myDataSet.Tables["myTableName"].RowFilter = "..." doesn't work. 

myDataSet被alreadly綁定到我的窗體上的某些控件,我不想重新綁定時myDataGridView的DataSource的變化。

我不想把我的DataGridView的DataSource是這樣的:

myDataGridView.DataSource = myDataTable; 
//then use myDataTable.DefaultView.RowFilter = "..."; 
//or 
BindingSource bs = new BindingSource(myDataSet, "myTableName"); 
myDataGridView.DataSource = bs; 
//then use bs.Filter = "..." 

我只想我的DataGridView的數據源中的第一個代碼,我怎麼能在這方面篩選它行?請確保它能正常工作,並注意我在這裏提到的內容。

您的幫助將不勝感激!

謝謝。

+0

嗯,這實際上是把我趕走*請確保它工作... * – V4Vendetta 2013-04-23 09:23:58

+0

真的嗎?如果您不確定它是否有效,請將其作爲評論發佈,只是建議是好的,謝謝! – 2013-04-23 09:25:18

+0

@ V4Vendetta plus,如果您的評論有幫助,我會通知您關於此的信息,然後我會希望您發佈正式答案。我的意思是我只需要一個建議,測試對我來說,測試後你就會知道結果。謝謝! – 2013-04-23 09:30:15

回答

1

嘗試myDataSet.Tables["myTableName"].DefaultView.RowFilter = "..."

如果不那麼這從another SO thread浮舟。

(dataGridViewFields.DataSource as DataTable).DefaultView.RowFilter = string.Format("Field = '{0}'", textBoxFilter.Text);