我有一个Web应用程序(使用C#)。我有一个GridView,并希望能够对其内容进行排序。我添加了标签
...
AllowSorting="True"
onsorting="MyGridView_Sorting">
和
asp:BoundField DataField="NAME" HeaderText="Name" SortExpression="NAME"
在GridView内部。我已经实现了MyGridView_Sorting方法。事情是:它不起作用。什么也没做。标题文本“名称”看起来像一个活动链接,但点击不会产生任何效果。在里面设一个断点
MyGridView_Sorting
表明它实际上永远不会进入函数内部。怎么了?我错过了什么?
感谢!!!
月
< asp:GridView ID="MyGridView"
runat="server"
CssClass="pvgrid"
Width="90%"
AutoGenerateColumns="false"
OnRowCommand="MyGridView_RowCommand"
AllowPaging="True"
PageSize="10"
AllowSorting="True"
onsorting="MyGridView_Sorting"
onpageindexchanging="MyGridView_PageIndexChanging" >
< Columns >
< asp:BoundField DataField="NAME" HeaderText="Name" SortExpression="NAME" />
< /Columns >
< /asp:GridView >
protected void MyGridView_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
MyGridView.PageIndex = e.NewPageIndex;
MyGridView.DataBind();
}
protected void MyGridView_Sorting(object sender, GridViewSortEventArgs e)
{
DataTable dataTable = MyGridView.DataSource as DataTable;
if (dataTable != null)
{
DataView dataView = new DataView(dataTable);
dataView.Sort = e.SortExpression + " "+ ConvertSortDirectionToSql(e.SortDirection);
MyGridView.DataSource = dataView;
MyGridView.DataBind();
}
}
答案 0 :(得分:3)
GridView将排序委托给基础DataSource。 GridView不会自行执行排序,只是委托。因此,您需要查看您的DataSource以进行排序。什么是DataSource?它显示什么样的数据?这些自定义对象来自ObjectDataSource
,还是您正在使用SqlDataSource
或LinqDataSource
?