`
zhaohaolin
  • 浏览: 1018250 次
  • 性别: 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通用翻页代码模块儿,可兼容在任何asp程序中

    这个"asp通用翻页代码模块儿"就是为了解决这个问题而设计的,它能够方便地集成到任何ASP程序中,实现数据的分页浏览。 翻页功能的实现通常涉及到以下几个核心知识点: 1. 数据库查询:首先,我们需要从数据库中...

    ASP高效分页----最快的分页法,逐页翻页速度极快

    本篇文章将深入探讨ASP中实现高效分页的方法,以及如何优化逐页翻页速度,确保快速响应用户操作。 一、理解分页原理 分页主要是通过计算数据总数和每页显示的数据量来确定页码。在ASP中,我们首先需要从数据库中...

    jquery ajax asp 分页 翻页 代码示例

    在实际项目中,为了提高用户体验,我们还可能需要考虑其他细节,如加载提示、错误处理、缓存优化等。例如,使用`.ajaxStart()`和`.ajaxStop()`监听请求的开始和结束,显示加载动画;使用`$.ajaxSetup()`设置全局AJAX...

    一个基于C#+ASP.NET的通用数据翻页控件源码(支持各种数据源绑定模式)

    在ASP.NET开发中,数据展示通常涉及到大量的数据处理和页面加载优化,特别是在处理大量数据时,数据翻页功能显得尤为重要。本资源提供了一个基于C#编程语言和ASP.NET框架的通用数据翻页控件源码,它具备了支持多种...

    最全的上下翻页代码

    总的来说,实现“最全的上下翻页代码”不仅涉及技术细节,也包括用户体验和网页设计的考量。无论你是HTML新手还是.NET开发者,都可以通过这个主题深入学习和提升自己的技能。在实践中不断迭代和完善,就能创建出符合...

    asp点击加载更多 向下翻页样式 实例源码

    在ASP中实现“点击加载更多”和“向下翻页样式”的功能,是提高用户体验、优化网页加载性能的重要技术手段。这种技术常用于数据量较大的网页,如论坛、博客、电商产品列表等,避免一次性加载大量内容导致页面加载...

    一个界面美观、功能强大的基于GridView进行扩展的翻页控件源代码

    通过研究和理解这些代码,开发者可以深入理解如何在ASP.NET中扩展控件功能,如何优化数据加载,以及如何设计用户友好的分页界面。 总的来说,这个基于GridView的翻页控件源代码是一个优秀的示例,展示了如何在Web...

    基于ASP.NET+C#实现的Gridview, DataGrid, DataList and Repeater 通用翻页控件源码例子

    在ASP.NET+C#开发环境中,数据展示...通过深入理解和实践这个源码例子,开发者将能够掌握如何在ASP.NET+C#环境中为Gridview、DataGrid、DataList和Repeater实现高效的通用翻页功能,从而提升Web应用的性能和用户体验。

    asp长文件分页,不再不断的翻页

    标题提到的"asp长文件分页,不再不断的翻页",指的是通过ASP技术实现对长文件内容进行分页显示,避免用户一次性加载过多内容,提高网页加载速度和浏览效率。 **1. ASP分页原理** 在ASP中,分页通常通过SQL查询来...

    c#动态翻页程序

    9. **用户体验优化**:动态翻页程序需要考虑到用户体验,例如平滑的滚动效果、加载指示器以及在用户滚动到底部时自动加载下一页的触发机制。 10. **错误处理和日志记录**:为了确保程序的健壮性,可能会包含异常...

    ASP多功能翻页函数 v2.0 -ASP源码.zip

    在实际项目中,理解并掌握这些知识点有助于有效地使用和修改这个ASP翻页函数,以满足你的具体需求。同时,持续学习和关注最新的ASP.NET技术,如ASP.NET Core,可以帮助你提升Web开发技能并保持与时俱进。

    asp+jquery翻页

    ASP 和 jQuery 结合实现无刷新翻页是一种常见的网页动态加载技术,主要应用于数据量较大、需要分页展示的场景,如论坛、电商商品列表等。这种方式可以提高用户体验,避免整个页面在用户滚动或点击翻页按钮时重新加载...

    ASP建站十大常用程序代码完整篇

    ASP代码可以控制每页显示的数量,实现前后翻页功能。 在ASP编程中,这些程序的实现涉及HTML、CSS和JavaScript与服务器端ASP代码的结合。例如,注册系统可能涉及用户界面设计(如按钮和文本框的布局),服务器端处理...

    ASP无刷新翻页,无刷新,带数据库

    10. **文件结构**:在"page"这个压缩包文件中,可能包含的文件有ASP源代码文件(如`page.asp`)、JavaScript文件(如`script.js`)以及可能的样式表(如`style.css`)等,它们共同协作实现无刷新翻页功能。...

    ASP多功能翻页函数

    在ASP中,我们可以使用VBScript或JScript等语言编写代码。标题提到的"ASP多功能翻页函数"是一个用于处理大量数据并实现分页显示的高效工具。这种功能在网页开发中非常常见,特别是在展示表格数据时,可以有效地提高...

    asp.net分页控件源码 含数据库完整演示代码

    在本资源中,"asp.net分页控件源码 含数据库完整演示代码"提供了一个完整的解决方案,包括分页控件的源代码和与数据库交互的示例,这对于学习和开发ASP.NET应用程序的人来说非常有价值。 首先,我们需要理解分页的...

    基于ASP的flash翻页电子杂志制作系统 v2.0.zip

    【描述】:描述中的“基于ASP的Flash翻页电子杂志制作系统 v2.0.zip”表明这是一个压缩文件,其中包含了该系统的源代码、数据库文件、配置文件、可能还有相关的帮助文档和示例文件。用户可以下载此ZIP文件,解压后在...

    asp+flash 九宫格图片新闻展示

    通过ActionScript,Flash的编程语言,我们可以编写代码接收来自ASP的数据,并动态加载图片到对应的单元格中。 ActionScript可以与ASP进行通信,通过XML或JSON格式传输数据。ASP将新闻数据转化为XML或JSON字符串,...

    Asp.Net自定义控件之翻页无刷新GridView

    在Asp.Net开发中,创建自定义控件可以极大地提高代码复用性和应用程序的灵活性。本文将深入探讨如何创建一个自定义控件,该控件是基于GridView的,实现了翻页无刷新的功能,同时兼容IE和Firefox浏览器。我们将讨论这...

    ASP源码—flash翻页电子杂志制作系统 v2.0.zip

    ASP源码—Flash翻页电子杂志制作系统 v2.0是一个基于Active Server Pages(ASP)技术的在线电子杂志创建和展示平台。这个系统允许用户利用Flash技术,将传统的PDF、图片或其他文档转换成具有动态翻页效果的互动式...

Global site tag (gtag.js) - Google Analytics