快速业务通道

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

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

返回“ASP.NET 2.0数据教程目录”

导言

DataList和Repeater数据分页里我们学习了如何在DataList里添 加分页功能。我们在ProductsBLL类里创建了一个名为 GetProductsAsPagedDataSource的方法,它返回一个PagedDataSource对象。当绑 定到DataList或Repeater时,他们将只显示请求页的数据。这个技术和GridView ,DetailsView,FormView的内置分页功能原理差不多。

除了分页外, GridView还提供了内置的排序功能,而DataList和Repeater都没有。然而排序功 能可以通过一点点代码就实现。本章我们将学习如何在DataList和Repeater里实 现排序功能,我们还将创建一个同时支持分页和排序的DataList或Repeater。

回顾一下排序

如我们在分页和排序报表数据里看到的,GridView 提供了排序的支持。每个GridView的字段可以有一个关联的SortExpression,它 指明了对数据进行排序依据的字段。当GridView的AllowSorting属性设为true时 ,每个包含SortExpression 属性的GridView的字段的header都表现为一个 LinkButton。当点一个header时,页面postback,数据会根据被点字段的 SortExpression进行排序。另外,SortDirection属性指明了数据是升序或降序。

当将GridView绑定到数据源控件时,它会将SortExpression和 SortDirection传给数据源控件。数据源控件获取数据并根据SortExpression和 SortDirection进行排序。然后将数据返回给GridView。

在DataList或 Repeater里实现这个功能,我们需要:

创建一个排序界面

将排序 的字段和方向(升序或降序)记下

指导ObjectDataSource根据特定字段 排序

我们将在第三和四步来处理上面三个步骤。然后我们将看看如何让 DataList或Repeater同时支持这两个功能(分页和排序)。

第二步: 在 Repeater里显示 Products

在实现排序功能前,首先创建一个列出所有 product的Repeater。打开PagingSortingDataListRepeater文件夹里的 Sorting.aspx页。添加一个Repeater,将ID设为SortableProducts。从智能标签里 创建一个名为ProductsDataSource的ObjectDataSource。用ProductsBLL类的 GetProducts()方法配置它。在INSERT, UPDATE, DELETE标签的下拉列表里选择 “(None)”。

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

图 1: 创建 ObjectDataSource

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

图 2: 在 UPDATE, INSERT, DELETE 标签的下拉列表里选择 “ (None)”

在绑定到数据源后,Visual Studio没有自动为Repeater创 建ItemTemplate,这点和DataList不一样。而且由于Repeater控件的智能标签里 没有象DataList里那样的“Edit Templates”选项,因此我们需要直 接添加声明代码。我们使用和前一章一样的ItemTemplate,它显示product的 name, supplier, category。

现在你的Repeater和ObjectDataSource的声 明标记看起来应该和下面差不多:

ASP.NET

<asp:Repeater ID="SortableProducts" DataSourceID="ProductsDataSource"
EnableViewState="False" runat="server">
<ItemTemplate>
<h4><asp:Label ID="ProductNameLabel" runat="server"
Text=''<%# Eval("ProductName") % >''></asp:Label></h4>
Category:
<asp:Label ID="CategoryNameLabel" runat="server"
Text=''<%# Eval ("CategoryName") %>''></asp:Label><br />
Supplier:
<asp:Label ID="SupplierNameLabel" runat="server"
Text=''<%# Eval("SupplierName") % >''></asp:Label><br />
<br />
<br />
</ItemTemplate>    
</asp:Repeater

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号