2009-12-02 31 views
0

我似乎無法找到一種方法在數據綁定的DataGridView控件上對列和行的整個氣息進行全文搜索。在綁定的DataGridView控件上進行全文搜索

DataTable和DataView對象似乎迫使我通過Select(),Find()或FindRows()搜索特定的列。與DataGridView控件一樣。

我有一個搜索字符串,我需要運行它對DataGridView的整個內容。我相信答案在某個地方。但是我現在似乎無法在C#和.Net框架的學徒階段中找到它。


這是我的,我想目前的解決方案,以避免:

/*...*/ 

for (int i = found_last_row + 1; i < dataGridRes.Rows.Count; ++i) 
{ 
    for (int j = 0; j < dataGridRes.Columns.Count; j++) 
    { 
     if(dataGridRes.Rows[i].Cells[j].Value.ToString().Contains(search_last_str.)) 
     { 
      dataGridRes.Rows[i].Selected = true; 
      dataGridRes.FirstDisplayedScrollingRowIndex = i; 

      found_last_row = i; 
      break; 
     } 
    } 
} 

/* ...*/ 
+0

您是否正在嘗試查找包含搜索文本的行/單元格/對象? – jheddings 2009-12-02 04:20:46

+0

只需要該行。我目前正在使用級聯for()。我希望可以避免的一個醜陋的解決方案。性能完全可以接受。但希望我能簡化代碼。 – 2009-12-02 04:50:24

回答

0

我覺得常用的方法是搜索源數據(而不是網格),然後重新綁定,只顯示比賽。如果使用分頁,網格會從數據庫中逐頁抽取數據,因此您只能搜索當前看到的頁面。

+0

是的。這將是一個可能的解決方案。但是搜索DataTable或DataView對象迫使我搜索特定的列,這不是我想要做的。我不需要重新綁定,因爲我只希望找到並選擇行而不是過濾它們。 – 2009-12-02 14:17:08