创建用于ASP.NET的分页控件-C#,JAVA视频教学,网页设计,网站开发,asp,php,mysql,asp.net| 学知识教程网,
设为首页|收藏学知识 |改版意见收集|智能DIY搜索|加入我们|网站地图
当前在线人数:8770
好教程 易学习 新资讯!
ASP.NET

创建用于ASP.NET的分页控件

2007-07-03 源自: 网友评论 共有( )条评论! 内容报错
本文章地址:http://dev.xuezhishi.net/website/NET/2007-10-17/20785.html [将本信息与朋友分享!]

                     

  使用 SqlPager 控件

  假设存在一个包含 ListBox 控件的示例页面。要使用分页程序,请确保 .ASPx 页面正确地注册了该控件的程序集。

<%@ Register TagPrefix="expo" Namespace="DevCenter" Assembly="SqlPager" %>

  控件的标记取决于实际设置的属性。以下标记是一个合理的示例:

<ASP:listbox runat="server" id="ListBox1" Width="300px" Height="168px"
DataTextField="companyname" />
<br>
<expo:SqlPager runat="server" id="SqlPager1" Width="300px"
ControlToPaginate="ListBox1"
SelectCommand="SELECT customerid, companyname FROM customers"
ConnectionString="SERVER=localhost;DATABASE=northwind;UID=..."
SortKeyField="companyname" />
<br>
<ASP:button runat="server" id="LoadFirst1" Text="加载第一页" />

  除了分页程序以外,页面还包含一个列表框和一个按钮。列表框将显示每个页面的内容;按钮只用于首次填充列表框。该按钮具有一个单击事件处理程序,定义如下。

private void LoadFirst1_Click(object sender, EventArgs e) {
 SqlPager1.CurrentPageIndex = 0;
 SqlPager1.DataBind();
}


图 2 显示操作中的页面。


图 2:与 ListBox 控件协同工作的 SqlPager 控件。

  使用 DataList 控件可以生成一个更有意思的示例。目标是使用分页程序浏览每个 Northwind 职员的个人记录。该 DataList 如以下列表所示。

<ASP:datalist runat="server" id="DataList1" Width="300px"
Font-Names="Verdana" Font-Size="8pt">
 <ItemTemplate>
  <table bgcolor="#f0f0f0" style="font-family:verdana;font-size:8pt;">
   <tr><td valign="top">
    <b><%# DataBinder.Eval(Container.DataItem, "LastName") + ", " +
DataBinder.Eval(Container.DataItem, "firstname") %></b>
   </td></tr>

   <tr><td>
    <span style="color:blue;"><i>
     <%# DataBinder.Eval(Container.DataItem, "Title")%></i></span>
     <p><img style="float:right;" src='image.ASPx?id=<%# DataBinder.Eval(Container.DataItem, "employeeid")%>' />
     <%# DataBinder.Eval(Container.DataItem, "Notes") %>
   </td></tr>
  </table>
 </ItemTemplate>
</ASP:datalist>

  表格的第一行显示职员的姓名和职务,然后是相片,相片周围是注释。相片是使用特定的 .ASPx 页面检索的,返回从数据库中获取的 JPEG 数据。

  分页程序可以放置在页面中的任何位置。本例中将它放置在合作者 DataList 控件上方并紧挨着合作者控件。


图 3:SqlPager 对 DataList 控件进行分页

  将 SqlPager 控件与 DataGrid 控件一起使用有意义吗?这要视情况而定。DataGrid 已经与一个基于本文中使用的 PagedDataSource 对象的嵌入式分页引擎一起工作。因此,如果您需要对以表格格式显示的单个记录集合进行分页时,就无需使用 SqlPager。但是,对于重要/复杂的方案,将这两个控件一起使用并不是一种牵强的想法。例如,如果您要向前一个屏幕快照添加一个 DataGrid 来显示由职员管理的订单,则可以在同一格页面上放置两个相关的分页引擎,一个要对职员进行分页,另一个用于滚动相关订单。

  小结

  不管您要生成哪种类型的应用程序(Web 应用程序、Microsoft? Windows? 应用程序或 Web 服务),您都很难下载和缓存要显示的整个数据源。有时,测试环境会使您相信这种解决方案真是太棒了,非常可取。但是测试环境也会误导。数据源的大小非常关键,应用程序的规模越大,数据源的大小越关键。

  在 ASP.NET 中,只有 DataGrid 控件具有内置的分页功能。但是,分页引擎是由相当样板化的代码实现的,只要进行少量的处理,就可以进行推广并用于多个不同的控件。本文介绍的 SqlPager 控件就实现了此目标。它关注下载数据,将数据分成多个页面并通过合作者控件显示。该控件可以检索并缓存整个数据集,或者仅在 SQL Server 中查询要在选定的页面中显示的几个记录。我说的是 SQL Server,这是另一个重点。SqlPager 只能用于 SQL Server,不能用于通过 OLE DB 或 ODBC 来检索数据。也不能使用它访问 Oracle 或 DB2 存档。

  要生成真正的通用 SQL 分页程序组件,应该形成数据访问层,并生成一种能够使用相应的数据提供程序创建连接、命令和适配器的工厂类。此外,要注意为各种 SQL 源设置一个分页引擎是最糟糕的做法。这里介绍的方法只适用于 SQL Server 7.0 和更高版本。TOP 子句在不同的环境下具有不同的特性。使用服务器游标和临时表格,它可适用于较大范围的 DBMS 系统。但那将使代码更为复杂。

 

http://dev.xuezhishi.net/website/NET/2007-10-17/20785.html
分页:1 2 3 4 [5]
评论 点击查看
 


加入QQ群:35714363 一起成长
我要加入更多群 我有意见要反映
开发教室

学知识原创教程下载

本类最近更新
阅读排行

其他相关信息