快速业务通道

ASP.NET 2.0数据教程之四十五:DataList和Repeater数据排序(一)

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-21
/asp:DropDownList>

<asp:Button runat="server" ID="RefreshRepeater" Text="Refresh" />

完成DropDownList后,我们需 要更新ObjectDataSource的Selecting event handler,来让它使用选择的 SortByListItem的Value作为sort expression,代替前面的硬编码。

C#

protected void ProductsDataSource_Selecting
(object sender, ObjectDataSourceSelectingEventArgs e)
{
// Have the ObjectDataSource sort the results by the selected
// sort expression
e.Arguments.SortExpression = SortBy.SelectedValue;
}

现在第一次浏览页的时候,由于默认的SortBy ListItem 的值 为ProductName,因此product会根据ProductName字段来排序。见图6。选择一个 其它的项–比如“Category”–然后点Refresh,这时会 postback,数据会根据category name来重新排序,见图7。

ASP.NET 2.0数据教程之四十五:DataList和Repeater数据排序(一)

图 6: 第一次 Products 根据 Name 排序

ASP.NET 2.0数据教程之四十五:DataList和Repeater数据排序(一)

图 7: 现在 Products 根据 Category 来排序

注意:点Refresh button会让数据重新排序是因为Repeater的view state被禁用了,因此Repeater 在每次postback时重新绑定到数据源。如果你开启Repeater的view state,这时 改变drop-down list不会对排序有任何影响。为了修复这个问题,你可以为 Refresh Button的 Click event创建一个event handler,来重新绑定Repeater到 数据源(调用Repeater的DataBind()方法)。

记下Sort Expression 和 Direction(排序表达式和排序方向)

如果包含可排序的DataList或 Repeater的页可能有其它和排序无关的postback发生,那么我们需要在postback 过程中记下sort expression 和 direction。比如,我们将本章的Repeater修改 成为每个product包含一个Delete button。当用户点Delete button时我们会执行 一些代码来删除选择的product,然后将数据绑定到Repeater。如果排序的信息在 postback过程中没有被保存下来,那么显示的数据会回复到最初的排序状态。

本章里,DropDownList隐式的为我们将sort expression 和 direction保 存在它的view state里。如果我们使用不同的排序界面–LinkButton提供不 同的排序选项–我们就需要在postback过程中记下排序的信息。这个可以通 过将排序的参数记在page的view state里,或者记在querystring里,或者通过一 些其它状态保存机制来实现。

本章后面的例子会探讨如何将排序信息保存 在page的view state里。

本文配套源码

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号