ASP.NET GridView Sort using DataTable.Select



是否可以使用 DataTable.Select(", sortExpression( 对 ASP.NET GridView 进行排序?

我有一个常规的网格视图,其中 AllowSorting="true" 和 OnSorting="grdEmployees_Sorting"。

protected void grdEmployees_Sorting(object sender, GridViewSortEventArgs e)
        {
            DataTable dt = getDataTable();
            var sortExprOrder = e.SortDirection == SortDirection.Ascending ? " ASC" : " DESC";
            var rows = dt.Select("", string.Format(e.SortExpression + "{0}", sortExprOrder));
            grdEmployees.DataSource = rows;
            grdEmployees.DataBind();
        }

不知道为什么,但这不起作用。网格显示一堆包含三列的行,即 RowError、RowState 和 HasErrors(包含带有所有空复选框的行(。

我做错了什么吗?

不需要

select 即可对 DataTable 进行排序。Select 用于筛选

这是你排序的方式

protected void grdEmployees_Sorting(object sender, GridViewSortEventArgs e)
        {
            DataTable dt = getDataTable();
            var sortExprOrder = e.SortDirection == SortDirection.Ascending ? " ASC" : " DESC";
            DataView dv = new DataView(dt);
            dv.Sort = string.Format("{0} {1}",
                e.SortExpression, sortExprOrder);
            grdEmployees.DataSource = dv;
            grdEmployees.DataBind();
        }

最新更新