[英]How to reset sort for datagridview (DataTable or DataView)
[英]How to sort dataview according to input string?
我有一個帶有員工姓名的數據視圖。 當我在過濾框中鍵入“ na”時,將顯示此結果。 過濾和排序的ASC訂單。
Amina
Anna
Masud Rana
Nasima
但我希望它根據我的輸入字符串“ na”進行排序。 預期的結果是這樣的
Nasima
Anna
Amina
Masud Rana
thnx的任何建議:)
不能使用intellisense中為Dataview提供的擴展方法直接使用過濾器進行排序,在DataView中,排序結果僅按字母順序顯示,但是,為了滿足您的要求,我為DataTable創建了自己的擴展方法
public static DataTable Sort(this DataTable dt, string ColumnName, string param) { DataTable dtCopy = new DataTable(); List<DataRow> list = dt.Rows.Cast<DataRow>().ToList(); list.Sort((x, y) => Convert.ToString(x[ColumnName]).ToLower().IndexOf(param).CompareTo(Convert.ToString(y[ColumnName]).ToLower().IndexOf(param))); dtCopy = list.CopyToDataTable(); return dtCopy; }
這將使用過濾器參數對數據進行排序(在您的情況下為“ na”)
//ColumnName is EmployeeName In your Case and filter text is txtSearchValue.Text DataTable dt2 = table.Sort("ColumnName", txtSearchValue.Text); DataView dv = dt2.DefaultView;
您的要求可以通過另一種方法來滿足,並且通過使用Lambda Expression在很小的代碼中,
DataTable dt3 = table.Rows.Cast<DataRow>().OrderBy(s => Convert.ToString(s["ColumnName"]).IndexOf(txtSearchValue.Text)).CopyToDataTable(); DataView dv = dt3.DefaultView;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.