AspNetPager

  1. 添加引用AspNetPager.dll
  2. 工具箱中添加"选择项"-.Net Framework组件-AspNetPager
  3. 页面中添加AspNetPager控件

    ContractedBlock.gifExpandedBlockStart.gifCode
    1<webdiyer:AspNetPager ID="AspNetPager1" runat="server"
    2AlwaysShow="True" //总是显示分页控件,即使要分页的数据只有一页
    3  OnPageChanged="AspNetPager1_PageChanged"  //分页发生改变时触发事件
    4UrlPaging="true"  //通过URL传递分页信息的方式来分页。如果设为true,禁用ViewState也能达到效果。如果设置为false,禁用了viewstate则无法实现分页.
    5NumericButtonTextFormatString="[{0}]" //页索引数字显示的格式
    6 ShowCustomInfoSection="Left">   //显示当前页和总页数信息,默认值不显示,为left则将显示在页索引前,为right则为页索引后            </webdiyer:AspNetPager>

  4. 初始化页面,添加ChangePage事件

    ContractedBlock.gifExpandedBlockStart.gifCode
    1 protected void Page_Load(object sender, EventArgs e)
    2ExpandedBlockStart.gifContractedBlock.gif{
    3         .
    4         .
    5         .
    6         BindData();//数据绑定
    7          .
    8         .
    9         .
    10       }
    11
    12//翻页事件
    13 protected void ChangePage(object src, PageChangedEventArgs e)
    14ExpandedBlockStart.gifContractedBlock.gif{
    15         pager1.CurrentPageIndex = e.NewPageIndex;
    16         BindData();
    17     }

//此处为调用分页存储过程
DataSet ds = DbUtility.QueryPagerData("jc_Province", "Id", pageIndex, PageSize, "", OrderBy, Where, out ItemCount, out PageCount);

base.DataBind(pageIndex);

ContractedBlock.gifExpandedBlockStart.gifPROC
  1CREATE PROC sp_PageView
  2 @tbname     sysname,               --要分页显示的表名
  3 @FieldKey nvarchar(1000),      --用于定位记录的主键(惟一键)字段,可以是逗号分隔的多个字段
  4 @PageCurrent int=1,               --要显示的页码
  5 @PageSize int=10,                --每页的大小(记录数)
  6 @FieldShow nvarchar(1000)='',      --以逗号分隔的要显示的字段列表,如果不指定,则显示所有字段
  7 @FieldOrder nvarchar(1000)='',      --以逗号分隔的排序字段列表,可以指定在字段后面指定DESC/ASC,用于指定排序顺序
  8 @Where nvarchar(1000)='',     --查询条件
  9 @ItemCount int OUTPUT,
10 @PageCount int OUTPUT             --总页数
11 AS
12 SET NOCOUNT ON
13 --检查对象是否有效
14 IF OBJECT_ID(@tbname) IS NULL
15 BEGIN
16 RAISERROR(N'对象"%s"不存在',1,16,@tbname)
17 RETURN
18 END
19 IF OBJECTPROPERTY(OBJECT_ID(@tbname),N'IsTable')=0
20 AND OBJECTPROPERTY(OBJECT_ID(@tbname),N'IsView')=0
21 AND OBJECTPROPERTY(OBJECT_ID(@tbname),N'IsTableFunction')=0
22 BEGIN
23 RAISERROR(N'"%s"不是表、视图或者表值函数',1,16,@tbname)
24 RETURN
25 END
26 --分页字段检查
27 IF ISNULL(@FieldKey,N'')=''
28 BEGIN
29 RAISERROR(N'分页处理需要主键(或者惟一键)',1,16)
30 RETURN
31 END
32 --其他参数检查及规范
33 IF ISNULL(@PageCurrent,0)<1 SET @PageCurrent=1
34 IF ISNULL(@PageSize,0)<1 SET @PageSize=10
35 IF ISNULL(@FieldShow,N'')=N'' SET @FieldShow=N'*'
36 IF ISNULL(@FieldOrder,N'')=N''
37 SET @FieldOrder=N''
38 ELSE
39 SET @FieldOrder=N'ORDER BY '+LTRIM(@FieldOrder)
40 IF ISNULL(@Where,N'')=N''
41 SET @Where=N''
42 ELSE
43 SET @Where=N'WHERE ('+@Where+N')'
44 --如果@PageCount为NULL值,则计算总页数(这样设计可以只在第一次计算总页数,以后调用时,把总页数传回给存储过程,避免再次计算总页数,对于不想计算总页数的处理而言,可以给@PageCount赋值)
45
46 DECLARE @sql nvarchar(4000)
47 SET @sql=N'SELECT @ItemCount=COUNT(*)'
48 +N' FROM '+@tbname
49 +N' '+@Where
50 EXEC sp_executesql @sql,N'@ItemCount int OUTPUT',@ItemCount OUTPUT
51 SET @PageCount=(@ItemCount+@PageSize-1)/@PageSize
52
53 print @PageCount
54 print @ItemCount
55 --计算分页显示的TOPN值
56 DECLARE @TopN varchar(20),@TopN1 varchar(20)
57 SELECT @TopN=@PageSize,
58 @TopN1=(@PageCurrent-1)*@PageSize
59 --第一页直接显示
60 IF @PageCurrent=1
61 EXEC(N'SELECT TOP '+@TopN
62 +N' '+@FieldShow
63 +N' FROM '+@tbname
64 +N' '+@Where
65 +N' '+@FieldOrder)
66 ELSE
67 BEGIN
68 --处理别名
69 IF @FieldShow=N'*'
70 SET @FieldShow=N'a.*'
71 --生成主键(惟一键)处理条件
72 DECLARE @Where1 nvarchar(4000),@Where2 nvarchar(4000),
73 @s nvarchar(1000),@Field sysname
74 SELECT @Where1=N'',@Where2=N'',@s=@FieldKey
75 WHILE CHARINDEX(N',',@s)>0
76 SELECT @Field=LEFT(@s,CHARINDEX(N',',@s)-1),
77 @s=STUFF(@s,1,CHARINDEX(N',',@s),N''),
78 @Where1=@Where1+N' AND a.'+@Field+N'=b.'+@Field,
79 @Where2=@Where2+N' AND b.'+@Field+N' IS NULL',
80 --@Where=REPLACE(@Where,@Field,N'a.'+@Field),
81 @FieldOrder=REPLACE(@FieldOrder,@Field,N'a.'+@Field),
82 @FieldShow=REPLACE(@FieldShow,@Field,N'a.'+@Field)
83 SELECT --@Where=REPLACE(@Where,@s,N'a.'+@s),
84 @FieldOrder=REPLACE(@FieldOrder,@s,N'a.'+@s),
85 @FieldShow=REPLACE(@FieldShow,@s,N'a.'+@s),
86 @Where1=STUFF(@Where1+N' AND a.'+@s+N'=b.'+@s,1,5,N''),   
87 @Where2=CASE
88 WHEN @Where='' THEN N'WHERE ('
89 ELSE @Where+N' AND ('
90 END+N'b.'+@s+N' IS NULL'+@Where2+N')'
91 DECLARE @QUERYSTRING varchar(2000)
92 SET @QUERYSTRING =     N'SELECT TOP '+@TopN
93 +N' '+@FieldShow
94 +N' FROM '+@tbname
95 +N' a LEFT JOIN(SELECT TOP '+@TopN1
96 +N' '+@FieldKey
97 +N' FROM '+@tbname
98 +N' a '+@Where
99 +N' '+@FieldOrder
100 +N')b ON '+@Where1
101 +N' '+@Where2
102 +N' '+@FieldOrder
103 PRINT @QUERYSTRING
104 --执行查询
105 EXEC(@QUERYSTRING)
106
107
108END
109GO

转载于:https://www.cnblogs.com/HughTan/archive/2010/07/16/1778737.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值