0
我有一個員工姓名的數據視圖。當我在過濾框中鍵入「na」時,會出現這個結果。過濾並排序的ASC訂單。如何根據輸入字符串對數據視圖進行排序?
Amina
Anna
Masud Rana
Nasima
但我希望它根據我的輸入字符串「na」排序。預期結果是這樣的
Nasima
Anna
Amina
Masud Rana
日Thnx任何建議:)
我有一個員工姓名的數據視圖。當我在過濾框中鍵入「na」時,會出現這個結果。過濾並排序的ASC訂單。如何根據輸入字符串對數據視圖進行排序?
Amina
Anna
Masud Rana
Nasima
但我希望它根據我的輸入字符串「na」排序。預期結果是這樣的
Nasima
Anna
Amina
Masud Rana
日Thnx任何建議:)
與過濾排序是不可能直接與智能感知的數據視圖提供的擴展方法,在數據視圖排序的結果會按字母順序而已, 然而,爲了滿足您的要求,我已經創建了自己的extention方法的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表達式B相識,並在非常小的代碼,
DataTable dt3 = table.Rows.Cast<DataRow>().OrderBy(s => Convert.ToString(s["ColumnName"]).IndexOf(txtSearchValue.Text)).CopyToDataTable();
DataView dv = dt3.DefaultView;
你知道使用Sort Method ..嗎? 'this.GridView1.Sort(this.dataGridView1.Columns [「你想排序的列名」],ListSortDirection.Ascending);' – MethodMan 2013-04-29 04:15:54
是的,我已經使用這種排序。 TransferEmployeeFilterView.Sort =「EmployeeName」;但是這給了我按字母順序排序的結果。這給了我在這裏提到的第一個結果。但我想獲得第二個結果,它不會根據輸入字符串(「na」)在我的過濾器框中對asc/desc進行排序。 – 2013-04-29 04:26:03
@AnupamRoy我認爲這種排序,你必須使用「喜歡」通配符在您的查詢,而不是DataView.May你PLZ顯示你的「搜索」查詢... – Rahul 2013-04-29 05:49:23