如何根据某些列对GridView获取的数据表进行排序。 我试图做这样的事情,但它没有用。
protected void GridView_Sorting(object sender, GridViewSortEventArgs e)
{
if (sender.GetType() != typeof(GridView))
return;
DataTable dt = (DataTable)((GridView)sender).DataSource;
DataTable dtClone = dt.Clone();
dt.AsEnumerable().OrderBy(row => row.Field <string>(e.SortExpression));
((GridView)sender).Source(dtClone);
}
答案 0 :(得分:1)
您可以将gridview重新绑定到已排序的数据表,也可以将sort表达式应用于gridview本身而不是底层绑定表。
这是一个非常好的摘要,包含示例链接:
答案 1 :(得分:1)
在Gridview中添加属性OnSorting="gridView_Sorting" AllowSorting="true"
和SortExpression="ColumnName"
并实施OnSorting Event。
检查链接
How to sort the data in grid view?
答案 2 :(得分:1)
我过去做过类似的事情来对DataTable进行排序:
DataTable dt = new DataTable(); // your data table
dt.DefaultView.Sort = "your_field" + "sort_direction";
DataView dv = new DataView(dt);
dv.Sort = ("your_field" + "sort_direction");
yourGridView.DataSource = dv;
答案 3 :(得分:1)
排序时,请确保将表格转换为DataView。你可以节省很多时间来手动实现排序方法。