快速业务通道

ASP.NET 2.0数据教程之二十五:大数据量时提高分页的效率

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

创建完存储过程后,花点时间 测试一下.右键在Server Explorer 点名为GetProductsPaged的存储过程,选择执 行.Visual Studio 会让你输入参数, @startRowIndex和@maximumRows(见图7).输 入不同的值查看一下结果是什么.

ASP.NET 2.0数据教程之二十五:大数据量时提高分页的效率

图 7: 为 @startRowIndex 和@maximumRows Parameters输入值

输入参数的值后,你会看到结果.图8的结果为两个参数的值都为10的结 果.

ASP.NET 2.0数据教程之二十五:大数据量时提高分页的效率

图 8: 将在第二页里显示的数据

完成存储过程后,我们可以创建 ProductsTableAdapter 方法了.打开Northwind.xsd ,右键点 ProductsTableAdapter,选择Add Query.选择使用已经存在的存储过 程.

ASP.NET 2.0数据教程之二十五:大数据量时提高分页的效率

图 9: 使用已经存在的存储过程创建DAL Method

下一步会要我 们选择要调用的存储过程.从下拉列表里选择GetProductsPaged .

ASP.NET 2.0数据教程之二十五:大数据量时提高分页的效率

图10: 选择GetProductsPaged

下一步要选择存储过程返回的数 据类型:表值,单一值,无值.由于GetProductsPaged 返回多条记录,所以选择表 值.

ASP.NET 2.0数据教程之二十五:大数据量时提高分页的效率

图 11: 为存储过程指定返回表值

最后给方法命名.象前面的方 法一样,选择Fill a DataTable 和Return a DataTable,为第一个命名为 FillPaged ,第二个为GetProductsPaged.

ASP.NET 2.0数据教程之二十五:大数据量时提高分页的效率

图 12: 命名方法为FillPaged 和GetProductsPaged

除了创建一 个DAL方法返回特定页的products外,我们需要在BLL里也这样做.和DAL方法一 样,BLL的GetProductsPaged 方法带两个整型的输入参数,分别为Start Row Index 和Maximum Rows,并返回在指定范围内的记录.在ProductsBLL 创建这个方法,仅仅 调用DAL的GetProductsPaged 就可以了.

C# 1
       2
       3
       4
       5 [System.ComponentModel.DataObjectMethodAttribute (System.ComponentModel.DataObjectMethodType.Select, false)]
       public Northwind.ProductsDataTable GetProductsPaged(int startRowIndex, int maximumRows)
       {
       return Adapter.GetProductsPaged(startRowIndex, maximumRows);
       }

你可以为BLL方法的参数取任何名 字.但是我们马上会看到,选择用startRowIndex 和maximumRows 会让我们在配置 ObjectDataSource 时方便很多.

第四步: 使用自定义分页配置 ObjectDataSource 创建完BLL和DAL的方法后,我们可以准备创建一个GridView 来 使用自定义分页了.打开PagingAndSorting 文件夹里的EfficientPaging.aspx , 添加一个GridView ,然后用ObjectDataSource 来配置它.在我们以前的教程里,我 们通常使用ProductsBLL 类的GetProducts 方法来配置ObjectDataSource .然而 这一次,我们使用GetProductsPaged 方法.GetProducts 会返回所有的products而 GetProductsPaged 只返回特定的记录.

ASP.NET 2.0数据教程之二十五:大数据量时提高分页的效率

图 13: 使用ProductsBLL Class类的 GetProductsPaged方法 来配置 ObjectDataSource

我们要创建一个只读的GridView,因此在INSERT, UPDATE, 和DELETE 标签下拉列表里选择(None).

接下来ObjectDataSource 向导会让我们选择GetProductsPaged 方法的输入参数startRowIndex 和 maximumRows 的值.在source里选择none.

ASP.NET 2.0数据教程之二十五:大数据量时提高分页的效率

图 14: Sources 里选择None

完成ObjectDataSource 向导 后,GridView 会为每个product字段创建一个BoundField 或CheckBoxField .可以 随意裁减GridView 的外观.我这里选择的是只显示ProductName, CategoryName, SupplierName, QuantityPerUnit, 和UnitPrice BoundFields.在智能标签里选择 支持分页,GridView 和ObjectDataSource 的标记看起来应该和下

AND RowRank <= (@startRowIndex + @maximumRows)

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