[英]How to display Grid data with 'filtered' binding list
我必須在綁定列表綁定的網格中顯示數據
BindingList<ExecutionSummaryData> ExecutionList
grid.DataSource = ExecutionList;
其中ExecutionSummaryData
包含Name, Age, Address
等屬性(例如)。
現在通過Winform,當用戶選擇某些名稱,年齡或其他參數時,我必須從ExecutionList
選擇數據,並且必須將過濾后的數據綁定到我的網格中。
我可以通過某種方式將此查詢綁定到ExecutionList
以便每次查詢字符串更改時, ExecutionList
都將綁定到網格並顯示過濾的數據嗎?
我可以將通過過濾器字符串從ExecutionList
檢索到的任何子列表綁定到我的網格,並且對於每個過濾器查詢更改,它將從ExecutionList
獲取數據並進行相應顯示。
ExecutionList
,因為此網格將實時更新約10-20百萬條記錄。 請建議在此ExecutionList
上使用Linq查詢或Lambda表達式的語法是什么,以獲取過濾的記錄。 過濾器查詢將包括具有多個實體的條件,以便比較並從“
從
ExecutionList
中選擇*,其中((N1','N2','N3',,,'N90')“中的名稱和((A1','A2','A3',,,'A90' )
請提出建議,因為我該如何實現? 根據回復,我將使用缺少/所需的信息來更新我的問題。
謝謝,
阿什什
使用分頁創建存儲過程,並通過搜索過濾器並檢索幾千個日期。 或者,您也可以使用IQueryable ,這樣將根據您的過濾器觸發查詢並檢索數據。 “這是評論,而不是答案。 ”
如果您想從DataTable過濾數據,我建議您使用DataView
DataView dv = new DataView();
dv = new DataView(parameterDs.Tables[0], "ParameterName = '@" + parameter.Key + "'",string.Empty, DataViewRowState.CurrentRows);
您還可以在DataView上使用sort
dv.Sort = "Name";
然后就用
grid.DataSource = dv;
使用DataView的另一種方法是通過為其分配一個查詢,如下所示:
DataTable contacts = dataSet.Tables["Contact"];
EnumerableRowCollection<DataRow> query = from contact in contacts.AsEnumerable()
where contact.Field<string>("LastName").StartsWith("S")
orderby contact.Field<string>("LastName"), contact.Field<string>("FirstName")
select contact;
DataView view = query.AsDataView();
bindingSource1.DataSource = view;
dataGridView1.AutoResizeColumns();
或使用DataView'RowFilter'屬性:
DataTable contacts = dataSet.Tables["Contact"];
DataView view = contacts.AsDataView();
view.RowFilter = "LastName='Zhu'";
bindingSource1.DataSource = view;
dataGridView1.AutoResizeColumns();
每當您要清除過濾器時,只需編寫:
view.RowFilter = null; //or String.Empty
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.