是否可以使用 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();
}