`
zhaohaolin
  • 浏览: 990375 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

asp翻页优化代码

阅读更多
asp翻页优化代码

<!---->

'//---- COCOON_自定义类_翻页优化代码 ----//'
Class cc_db_Pager

'//-------------------- 定义变量 --------------------//'
Private sTableName '//表名
Private sSqlString '//自定义Sql语句
Private aCondition() '//查询条件(数组)
Private sCondition '//查询条件(字符串)
Private iPage '//当前页码
Private iPageSize '//每页记录数
Private iPageCount '//总页数
Private iRecCount '//当前查询条件下的记录数
Private iTotalRecCount '//总记录数
Private sFields '//输出的字段名
Private sOrderBy '//排序字符串
Private sSql '//当前的查询语句
Private sPkey '//主键
Private oConn '//连接对象
Private iDefPageSize '//默认每页显示的记录数
Private sProjectName '/项目名
Private sVersion '/版本号
Private bShowError '//是否显示错误信息

'//-------------------- 事件、方法 --------------------//'
'//类初始化事件
Private Sub Class_Initialize()
ReDim aCondition(-1)
iPage = 1
iRecCount = Null
iTotalRecCount = Null
iPageCount = Null
bShowError = True
iPageSize = 10
sFields = "*"
sPkey = "ID"
sCondition = ""
sOrderBy = ""
sSqlString = ""
sProjectName = "COCOON 类系列 数据库翻页优化"
sVersion = "1.02"
End Sub

'//类结束事件
Private Sub Class_Terminate()
Set oConn = Nothing
End Sub

'//错误处理
Public Sub doError(s)
Dim sTmp
sTmp = CLng(Rnd() * 100)
Response.write( "
" )
Response.write( "" )
Response.write( "〖 CC_db_Pager 提示信息 〗
" )
Response.write( "
<nobr>" )
Response.write( "Description: " & s & "
" )
Response.write( "Provider: " & sProjectName )
Response.write( "  Version: " & sVersion & "
" )
Response.write( "</nobr>

" )
End Sub

'//产生分页的SQL语句
Public Function getSql()
Dim iStart, iEnd
Call makeCondition()
iStart = ( iPage - 1 ) * iPageSize
iEnd = iStart + iPageSize
getSql  = " SELECT DISTINCT " & sFields & " FROM ["&sTableName&"] " _
& " WHERE ["&sPKey&"] NOT IN ( " _
& "   SELECT TOP "&iStart&" ["&sPKey&"] FROM ["&sTableName&"] " & sCondition & " " & sOrderBy & " " _
& " )" _
& " AND ["&sPKey&"] IN ( " _
& "   SELECT TOP "&iEnd&" ["&sPKey&"] FROM ["&sTableName&"] " & sCondition & " " & sOrderBy & " " _
& " )" _
& " " & sOrderBy & " "
End Function

'//产生条件字符串
Private Sub makeCondition()
If UBound(aCondition)>=0 Then
sCondition = " WHERE " & Join(aCondition, " AND ")
End If
End Sub

'//计算总记录数(带条件)
Private Sub CaculateRecCount()
On Error Resume Next
Dim oRs
Call makeCondition()
Set oRs = oConn.Execute( "SELECT COUNT(["&sPKey&"]) FROM [" & sTableName & "]" & sCondition )
If Err Then
doError Err.Description
Response.End()
End If
iRecCount = oRs.Fields.Item(0).Value
Set oRs = Nothing
End Sub

'//计算总记录数(不带条件)
Private Sub CaculateTotalRecCount()
On Error Resume Next
Dim oRs
Set oRs = oConn.Execute( "SELECT COUNT(["&sPKey&"]) FROM [" & sTableName & "]" )
If Err Then
doError Err.Description
Response.End()
End If
iTotalRecCount = oRs.Fields.Item(0).Value
Set oRs = Nothing
End Sub

'//计算页数
Private Sub CaculatePageCount()
If isNull(iRecCount) Then CaculateRecCount()
If iRecCount = 0 Then iPageCount = 0 : Exit Sub
iPageCount = Abs( Int( 0 - (iRecCount / iPageSize) ) )
End Sub

'//增加条件
Public Sub AddCondition(s)
If Len(s)<0 Then Exit Sub
ReDim Preserve aCondition(UBound(aCondition)+1)
aCondition(UBound(aCondition)) = s
End Sub

'//版本信息
Public Function Information()
doError "Coding by Sunrise_Chen @ http://www.ccopus.com ."
End Function


'//-------------------- 输入属性 --------------------//'
'//定义连接对象
Public Property Set ActiveConnection(o)
Set oConn = o
End Property

'//定义查询表名
Public Property Let TableName(s)
sTableName = s
End Property

'//定义需要输出的字段名
Public Property Let Fields(s)
sFields = s
End Property

'//定义主键
Public Property Let Pkey(s)
sPkey = s
End Property

'//定义排序规则
Public Property Let OrderBy(s)
sOrderBy = " ORDER BY " & s & " "
End Property

'//定义每页的记录条数
Public Property Let PageSize(s)
iPageSize = s
If Not isNumeric(iPageSize) Then iPageSize = iDefaultPageSize
If CLng(iPageSize)<1 Then iPageSize = iDefaultPageSize
End Property

'//定义当前页码
Public Property Let Page(s)
iPage = s
If Not isNumeric(iPage) Then iPage = 1
If CLng(iPage)<1 Then iPage = 1
Call CaculatePageCount()
If CLng(iPage)>CLng(iPageCount) And iPageCount>0 Then iPage = iPageCount
End Property

'//自定义查询语句
Public Property Let Sql(s)
sSqlString = s
End Property

'//-------------------- 输出属性 --------------------//'
'//取得当前条件下的记录数
Public Property Get RecordCount
If isNull(iRecCount) Then CaculateRecCount()
RecordCount = iRecCount
End Property

'//取得当前页码
Public Property Get Page
Page = iPage
End Property

'//取得当前页码
Public Property Get AbsolutePage
AbsolutePage = iPage
End Property

'//取得当前查询的条件
Public Property Get Condition
If Len(sCondition)<1 Then makeCondition()
Condition = sCondition
End Property

'//取得总的记录数
Public Property Get TotalRecordCount
If isNull(iTotalRecCount) Then CaculateTotalRecCount()
TotalRecordCount = iTotalRecCount
End Property

'//取得总页数
Public Property Get PageCount
If isNull(iPageCount) Then CaculatePageCount()
PageCount = iPageCount
End Property

'//得到分页后的记录集
Public Property Get Recordset
On Error Resume Next
sSql = getSql()
Set Recordset = oConn.Execute( sSql )
If Err Then
If bShowError Then doError Err.Description
If Len(sSqlString)>0 Then
Set Recordset = oConn.Execute( sSqlString )
If Err Then
doError Err.Description
Response.End()
End If
Else
doError Err.Description
End If
End If
Err.Clear()
End Property

'//版本信息
Public Property Get Version
Version = sVersion
End Property

End Class
 
分享到:
评论

相关推荐

    ASP.NET考研资讯网实验报告 含关键代码及注释、关键设置截图

    在查询高校历年分数线时,很多网站给出的是整张表格,查阅起来极为不便,所以我在网站制作中进行了优化,使得成绩查询更加便捷更加明确。而在互动环节,我认为更多人需要的是经验总结,这样比泡在论坛节省时间、效率...

    PJBlog3 v3.2.9.506 免费的ASP博客系统.rar

    7、优化翻页代码(相应的皮肤CSS也需要增加修正) 8、修正友情链接分类编辑的BUG 9、改进Gravatar头像功能 10、修复相关日志不能翻页的BUG 11、修复查看更多链接错误的BUG 12、FCK编辑器升级到2.6.6 13、修复了...

    asp.net知识库

    ASP.NET 2.0 正式版中无刷新页面的开发(示例代码的补充) ASP.NET2.0中themes、Skins轻松实现网站换肤! ASP.NET 2.0 中的代码隐藏和编译 ASP.NET 2.0 Language Swithcer and Theme Swicher 多语言转换和多样式主题...

    宽屏首页列表翻页教程网(带手机)-Asp

    宽屏首页列表翻页教程网源码是asp+access/mssql架构网站系统,电脑版,手机版,平板版无缝切换,一个后台同步管理,整站生成静态利于搜索收录,dreamweaver打开可视化修改。 可用于制作教程网、文章网、新闻网、资讯...

    asp.net mvc自定义pager封装与优化

    之前做了一个通用的分页组件,但是有些不足,从翻页事件和分页样式都融合在后台代码中,到翻页事件可以自定义,再到翻页和样式都和代码分离, 自定义分页 pager 越来越容易扩展了。 HtmlHelper Pager扩展 Pager V1.0...

    PJBlog3 v3.2.9.506

    决定暂不增加语言包功能2、添加静态页面上下模块 3、优化评论审核功能 4、优化用户登录状态表现 5、优化缓存路径的读取 6、增加几个浏览器及操作系统的识别 7、优化翻页代码(相应的皮肤CSS也需要增加修正) ...

    宽屏首页列表翻页教程网(带手机)

    宽屏首页列表翻页教程网源码是asp+access/mssql架构网站系统,电脑版,手机版,平板版无缝切换,一个后台同步管理,整站生成静态利于搜索收录,dreamweaver打开可视化修改。可用于制作教程网、文章网、新闻网、资讯...

    FilesNet文件管理系统 v1.7.6304

    在asp版《在线文件管理器》的基础上设计制作,取其精华,弃其糟粕,功能更强,效率更高, 具有以下特点: 1。采用三层结构开发,程序逻辑和用户...优化部分内部字符串处理算法 默认帐号:admin 默认密码:spbdev

    ASP ISchool随机抽题考试系统

    1.整理优化了全部代码,操作成功提示改为弹出DIV,后台表单区域加入了帮助语句 2.将系统设置存储到了数据库 3.修复系统存在的数个BUG 4.改良抽题算法 5.改良系统安装文件,增加数个权限检查点 V3.4Sp1(20100816) ...

    Asp.net MVC 中利用jquery datatables 实现数据分页显示功能

    1、Controller中的方法代码如下: 由于方法中的存储过程没有带分页参数,所以还可以有继续优化的空间。 /// /// 获取测点列表 /// /// &lt;returns&gt;&lt;/returns&gt; [HttpPost] public JsonResult ...

    Discuz!NT v2.6.1 源码包 bulid 090305

    7 主要页面优化查询,速度及负载能力大幅提升; 8 聚合首页,让网络社区表现形式更精彩。 修正列表 help.aspx页面图片显示出来,已修正 复制论坛设置的问题,已修正 推荐版块时的问题,已修正 审核主题有问题,已修正 ...

    ExtAspNet v2.2.1 (2009-4-1) 值得一看

    --我们做了优化,现在要使一个Asp.net的按钮能够AJAX提交,你不需要做任何设置(PageManager的属性EnableAjax为true即可,这是默认属性)。 +PageManager的实例方法AddAjaxUpdateControl改名为...

    CuzCms成创企业网站内容管理系统 v1.4.rar

    注:成创网站内容管理系统原名DodeCms,现改名为CuzCms,CuzCms v1.4对DodeCms v1.3 的升级更新,优化了很多代码,界面可能看上去没有什么区别,但是里面的代码少了很多,之后还会发布不同语言版本的CMS。...

    pj博客pjblog3 3.2.9.506

    1、去除未完成的语言包,决定暂不增加语言包功能2、添加静态页面上下模块3、优化评论审核功能4、优化用户登录状态表现5、优化缓存路径的读取6、增加几个浏览器及操作系统的识别7、优化翻页代码(相应的皮肤CSS也需要...

    C#网站制作经典实操

    1.3.4 运行SQL代码建表 9 1.4 查看建好的用户表 9 小结 10 第2章 母版页和CSS文件 10 2.1 母版页 11 2.1.1 母版页文件及所在文件夹 11 2.1.2 母版页的设计布局 12 2.1.3 母版页的HTML主要代码 13 2.2 CSS样式文件 14...

    E酷网络商城购物系统2006版

     全面优化代码提供系统的执行效率,并且针对搜索引擎做了代码优化,使你的网站在搜索引擎出现的几率     更高,让顾客在第一时间找到你的额网站     增加首页推荐商品功能     增加前后台订单打印功能  ...

Global site tag (gtag.js) - Google Analytics