ASP.NET 2.0数据教程之四十五:DataList和Repeater数据排序(一)
> <asp:ObjectDataSource ID="ProductsDataSource" runat="server" OldValuesParameterFormatString="original_{0}" TypeName="ProductsBLL" SelectMethod="GetProducts"> </asp:ObjectDataSource> 图 3 是现在浏览该页的样子 。 图 3: 显示 Product的 Name, Supplier, Category 第三步: 指 导 ObjectDataSource 对数据进行排序 为了让Repeater里显示的数据排序 ,我们需要将数据排序的sort expression告诉ObjectDataSource。在 ObjectDataSource获取数据前,首先激发的是Selecting event,它给我们提供了 一个指定sort expression的机会。Selecting event handler 有一个 ObjectDataSourceSelectingEventArgs 类型的参数,它有一个名为Arguments的 DataSourceSelectArguments类型的属性.。DataSourceSelectArguments类被设计 用来将数据相关的请求从数据的消费者传给数据源控件,它有一个 SortExpression property。 创建一个Selecting event handler,用以下 代码将排序的信息从ASP.NET页传给ObjectDataSource: C#
sortExpression 需要赋值为排序字段的名字(例如 “ProductName”)。它没有排序方向相关的属性,因此如果需要以降 序来排序,将“DESC”附加在sortExpression 的值后面(比如 “ProductName DESC”)。 继续试一下硬编码将 sortExpression 赋为不同的值,并浏览页面 。如图4,当使用 “ProductName DESC”作为sortExpression时,product会根据name的 字母顺序反向排序。 图 4: Product 根据Name 的字母顺序反向排序 第四步: 创建排 序界面并记下Sort Expression 和 Direction 开启GridView的排序支持会 将每个可排序的字段的header text转换为一个LinkButton,当被点击时,会进行 相对应的排序。这样的排序对GridView来说是很合理的,因为它的数据是以列的 形式整齐的展示。而对DataList和Repeater来说,需要不同的排序界面。一个常 见的数据列表(相对于数据网格)的排序界面是使用一个提供排序字段的下拉列 表。我们本章将完成这样的界面。 在SortableProducts Repeater上方添 加一个DropDownList,将ID设为SortBy。在属性窗口里点Items属性打开ListItem 集合编辑器。添加ListItems,让数据根据ProductName, CategoryName, SupplierName 字段排序。同时添加ListItem让product根据反向的name的顺序排 序。 ListItem的Text属性可以设为任何值(比如“Name”), 但是Value必须设为数据字段的名字(比如“ProductName”)。添加 字符串“DESC”到数据字段名字后面,来让结果以降序排序,比如 “ProductName DESC”。 图 5:为每个可排序的字段添加 ListItem 最后在DropDownList 的右边添加一个Button。将ID设为RefreshRepeater,Text设为 “Refresh”。 完成这些后,DropDownList和Button的声明语 法看起来应该和下面差不多: ASP.NET
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |