簡體   English   中英

如何根據輸入字符串對dataview進行排序?

[英]How to sort dataview according to input string?

我有一個帶有員工姓名的數據視圖。 當我在過濾框中鍵入“ na”時,將顯示此結果。 過濾和排序的ASC訂單。

Amina
Anna
Masud Rana
Nasima

但我希望它根據我的輸入字符串“ na”進行排序。 預期的結果是這樣的

Nasima
Anna
Amina
Masud Rana

thnx的任何建議:)

  1. 不能使用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; 
  2. 您的要求可以通過另一種方法來滿足,並且通過使用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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM