如何在asp.net中的GridView中对数据进行排序

时间:2010-09-02 15:53:34

标签: c# asp.net .net linq gridview

如何根据某些列对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);
}

4 个答案:

答案 0 :(得分:1)

您可以将gridview重新绑定到已排序的数据表,也可以将sort表达式应用于gridview本身而不是底层绑定表。

这是一个非常好的摘要,包含示例链接:

http://msdn.microsoft.com/en-us/library/hwf94875.aspx

答案 1 :(得分:1)

在Gridview中添加属性OnSorting="gridView_Sorting" AllowSorting="true"

中的

SortExpression="ColumnName"

并实施OnSorting Event。

检查链接

Sorting the GridView's Data

How to sort the data in grid view?

How to sort data into GridView

Sorting Data in a GridView

How to sort GridView?

答案 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。你可以节省很多时间来手动实现排序方法。