2011-03-29 168 views
0

我知道我已經問了很多次這個問題,但我已經得到了答案,可以幫助我。 請,需要建議我已經嘗試做1周或更多。DataGridView過濾問題

我有我的dataGrid的用戶控件。有toolBar With按鈕,它打開Find form有一個按鈕和一個文本框。單擊此按鈕我調用方法Search()這樣的:

private void btnFind_Click_1(object sender, EventArgs e) { Inventory i = new Inventory(); i.Search(txtFind.Text); } ,這是怎樣的方法Search工作:

public void Search(string searchWord) 
    { 
     AcidDBDataContext db = new AcidDBDataContext(); 
     var q = db.ProcSearch(searchWord); 
     dgvInventory.DataSource = q; 
    } 

這種方法工作正常庫存,但是當我點擊btnFind它什麼都不做,我用調試器,並看到該查詢正確執行並從表中獲取行。 問題是在這條線:dgvInventory.DataSource = q;

進出口使用C#的WinForms和SQL Server 2008

回答

1

你可以使用的BindingSource

BindingSource bs = new BindingSource(); 

,然後在搜索(字符串搜索內容)

//dgvInventory.DataSource = q; 
bs.DataSource = q; 
if (dgvInventory.DataSource == null) 
    dgvInventory.DataSource = bs; 
else 
    bs.ResetBindings(false); 
+0

它不起作用。我甚至無法隱藏另一個表單中的datagrid列 – 2011-03-29 14:43:07

1

你試過dgvInventory.ResetBindings()?

[編輯:錯誤的陳述,而不是.ResetBindings .REFRESH]

+0

我試着它現在但不起作用。在其他表單上datagridview不起作用 – 2011-03-29 09:55:04

+0

其實它是ResetBindings()我正在考慮上面提到的cdel。我認爲刷新是針對用戶界面表示。 – 2011-03-29 11:37:12