gpt4 book ai didi

asp.net - 如何使用 GridView 和 ObjectDataSource 进行排序?

转载 作者:行者123 更新时间:2023-12-03 20:02:22 25 4
gpt4 key购买 nike

我有一个带有 ObjectDataSource 的 GridView我希望能够对其进行排序。

分页工作正常,但是排序给了我一个异常(exception):

The GridView gridView fired event Sorting which wasn't handled.



如何在服务器端启用排序?

(即 gridView.EnableSortingAndPagingCallbacks 必须保持为假)

最佳答案

将 gridView.AllowSorting 属性设置为 true。从这里开始,如果您使用实现 IBindingList 的对象,网格应该允许您在回发时自动对数据进行排序。但是,由于情况很可能并非如此,您应该接受上面 TheTXI 的建议并自己处理排序事件。在代码隐藏中连接 GridView.Sorting 事件,如下所示:

gridView.Sorting += new GridViewSortEventHandler(gridView_Sorting); 

在 gridView_Sorting 方法中处理排序,它应该如下所示:
private void gridView_Sorting(object sender, GridViewSortEventArgs e)
{
//Sorting logic here
}

此外,您可以使用附加到控件的 OnSort="gridView_Sorting"在页面本身上连接事件。

请记住,由于您将 gridView.EnableSortingAndPagingCallbacks 设置为 false,因此当用户尝试排序时不会立即触发它,而是等待回发到服务器。

我希望这有帮助!

编辑:

由于 ObjectDataSource 似乎是首选的中间人,这里是对用于排序的接线的简要说明。在您的页面中使用以下内容(完整示例可以在 MSDN 上的 here 中找到,靠近底部):
<asp:GridView ID="TestGridView" runat="server" DataSourceID="ObjectDataSourceTest"
AllowSorting="True">
</asp:GridView>
<asp:ObjectDataSource ID="ObjectDataSourceTest" runat="server"
SelectMethod="SelectMethod"
TypeName="Samples.AspNet.CS.SortingData"
SortParameterName="sortExpression">
</asp:ObjectDataSource>

您将跳转到 ObjectDataSource 来处理排序,而不是实际使用 gridView.Sorting 事件。一旦排序被触发,它应该调用在你的代码后面的 SelectMethod 中找到的方法。然后,在 SelectMethod 中,您将处理 GridView 对象的重建,这将如下所示:
public void SelectMethod(string sortExpression)
{
//Rebuild gridView table if necessary, same method used in
//on a postback, and retrieve data from the database. Once
//completed sort the data with:

gridView.Sort(sortExpression, SortDirection.(Ascending or Descending))
}

关于asp.net - 如何使用 GridView 和 ObjectDataSource 进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1003037/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com