⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 page_cls.asp

📁 网趣系统时尚版8(支付宝)
💻 ASP
字号:
<%
 Class Cls_PageView
  Private CookiesCacheName,CookiesCacheData,sstrCookiesName,CSQL
  Private sstrPageUrl,sstrPageVar,sstrTableName,sstrFieldsList,sstrCondiction,sstrOrderList,sstrPrimaryKey,sintRefresh
  Private sintRecordCount,sintPageSize,sintPageNow,sintPageMax,sstrPageInfo,sReloadtime
  
  Private Sub Class_Initialize
   sstrCookiesName = ""
   sstrPageUrl = ""
   sstrPageVar = "page"
   sstrTableName = ""
   sstrFieldsList = ""
   sstrCondiction = ""
   sstrOrderList = ""
   sstrPrimaryKey = ""
   sintRefresh = 0
   Reloadtime=3
   sintRecordCount = 0
   sintPageSize = 0
   sintPageNow = 0
   sintPageMax = 0
   CSQL=""
   CookiesCacheName=LCase(Replace(Request.ServerVariables("SERVER_NAME") & Request.ServerVariables("URL"),Split(request.ServerVariables("SCRIPT_NAME"),"/")(ubound(Split(request.ServerVariables("SCRIPT_NAME"),"/"))),""))
  End Sub
   
  Private Sub class_terminate()
  ' Set Conn=nothing
  End Sub
    
 '类初始化,外部调用
  Public Sub InitClass()
	If Not IsObject(Conn) Then ConnectionDatabase
	Call InitRecordCount()
	Call InitPageInfo()   
  End Sub
  
  '保存记录数的 Cookies 变量
  Public Property Let strCookiesName(Value)
   sstrCookiesName = Value
  End Property
  '保存更新 Cookies 的时间
  Public Property Let Reloadtime(Value)
   sReloadtime = Value
  End Property  
  '转向地址
  Public Property Let strPageUrl(Value)
   sstrPageUrl = Value
  End Property
   

  ' 表名
  Public Property Let strTableName(Value)
   sstrTableName = Value
  End Property
  '字段列表
  Public Property Let strFieldsList(Value)
   sstrFieldsList = Value
  End Property
  '查询条件
  Public Property Let strCondiction(Value)
   If Value <> "" Then
    sstrCondiction = " WHERE " & Value
   Else
    sstrCondiction = ""
   End If
  End Property
  '排序字段, 如: [ID] ASC, [CreateDateTime] DESC
  Public Property Let strOrderList(Value)
   If Value <> "" Then
    sstrOrderList = " ORDER BY " & Value
   Else
    sstrOrderList = ""
   End If
  End Property
   '获得总记录数
  Public Property Let CountSQL(TSQL)
	CSQL=TSQL
  End Property 
 '用于统计记录数的字段
  Public Property Let strPrimaryKey(Value)
   sstrPrimaryKey = Value
  End Property
  
  '每页显示的记录条数
  Public Property Let intPageSize(Value)
   sintPageSize = toNum(Value, 20)
  End Property

  '当前页
  Public Property Let intPageNow(Value)
   sintPageNow = toNum(Value, 1)
  End Property
  
  '页面参数名称
  Public Property Let strPageVar(Value)
   sstrPageVar = Value
  End Property
  
  '是否刷新. 1 为刷新, 其他值则不刷新
  Public Property Let intRefresh(Value)
   sintRefresh = toNum(Value, 0)
  End Property
  
  '获得当前页
  Public Property Get intPageNow()
   intPageNow = sintPageNow
  End Property
  
  '获得分页信息
  Public Property Get strPageInfo()
   strPageInfo = sstrPageInfo
  End Property
  
    'cookies时间是否清空
   	Private Function ObjIsEmpty()
		Dim Temp
		ObjIsEmpty=True
		Temp = Request.Cookies("YxBBs")(CookiesCacheName&"_"&sstrCookiesName)
		CookiesCacheData=Split(Temp,"|||")
		If Instr(Temp,"|||")=0 Then Exit Function
		If Not IsArray(CookiesCacheData) Then Exit Function
		If Not IsDate(CookiesCacheData(1)) Then Exit Function
		If DateDiff("s",CDate(CookiesCacheData(1)),Now()) < 60*sReloadtime  Then
			ObjIsEmpty=False
		End If
	End Function

  
  '取得记录集, 二维数组或字串, 在进行循环输出时必须用 IsArray() 判断
  Public Property Get arrRecordInfo()
	Dim rs, sql
	sql = "SELECT " & sstrFieldsList & " FROM " & sstrTableName & sstrCondiction & sstrOrderList
	If Not IsObject(Conn) Then ConnectionDatabase
	Set rs = Server.CreateObject("Adodb.RecordSet")
	rs.open sql, Conn, 1, 1
	If Not(rs.eof or rs.bof) Then
		rs.PageSize = sintPageSize
		If sintpageNow=0 Then sintpageNow=1
		rs.AbsolutePage = sintPageNow
		If Not(rs.eof or rs.bof) Then
			arrRecordInfo = rs.getrows(sintPageSize)
		Else
			arrRecordInfo = ""
		End If
	Else
		arrRecordInfo = ""
	End If
	rs.close
	Set rs = nothing
  End Property
  
  '初始化记录数
  Private Sub InitRecordCount()
	If Not ObjIsEmpty() Then
		sintRecordCount = Value
	Else
		Dim sql,rs
		If CSQL="" Or IsNull(CSQL) Then
			sql = "SELECT COUNT(" & sstrPrimaryKey & ")" & " FROM " & sstrTableName & sstrCondiction
			If Not IsObject(Conn) Then ConnectionDatabase
			Set rs = Conn.execute(sql)
			If rs.eof or rs.bof Then
			sintRecordCount = 0
			Else
			sintRecordCount = rs(0)
			End If
			Rs.close
			Set Rs=nothing
		Else
			sintRecordCount=CSQL
		End If
		Value=sintRecordCount
	End If
End Sub

    Private  Property Let Value(ByVal vNewValue)
	Dim Temp
		If sstrCookiesName<>"" Then 
		    Temp = Request.Cookies("YxBBs")(CookiesCacheName&"_"&sstrCookiesName)
			CookiesCacheData=Split(Temp,"|||")
			If IsArray(CookiesCacheData) And Instr(Temp,"|||")>0 Then
				CookiesCacheData(0)=vNewValue
				CookiesCacheData(1)=Now()
			Else
				ReDim CookiesCacheData(2)
				CookiesCacheData(0)=vNewValue
				CookiesCacheData(1)=Now()
			End If
			SetCookies CookiesCacheName&"_"&sstrCookiesName,CookiesCacheData
		Else
			Err.Raise vbObjectError + 1, "YxBBsCacheServer", " please change the CacheName."
		End If		
	End Property
	
	Private Property Get Value()
	Dim Temp
		If sstrCookiesName<>"" Then 
		    Temp = Request.Cookies("YxBBs")(CookiesCacheName&"_"&sstrCookiesName)
			CookiesCacheData=Split(Temp,"|||")
			If IsArray(CookiesCacheData) And Instr(Temp,"|||")>0 Then
				Value=CookiesCacheData(0)
			Else
				Err.Raise vbObjectError + 1, "YxBBsCacheServer", " The CacheData Is Empty."
			End If
		Else
			Err.Raise vbObjectError + 1, "YxBBsCacheServer", " please change the CacheName."
		End If
	End Property 
  
  '初始化分页信息
  Private Sub InitPageInfo()
	Dim surl,i,PageNMin,PageNMax
	sstrPageInfo = ""
	surl = sstrPageUrl   
	If Instr(1, surl, "?", 1) > 0 Then
	surl = surl & "&" & sstrPageVar & "="
	Else
	surl = surl & "?" & sstrPageVar & "="
	End If
	If sintPageNow <= 0 Then sintPageNow = 1
	If sintRecordCount mod sintPageSize = 0 Then
		sintPageMax = sintRecordCount \ sintPageSize
	Else
		sintPageMax = sintRecordCount \ sintPageSize + 1
	End If
	If sintPageNow > sintPageMax Then sintPageNow = sintPageMax
	sstrPageInfo =  "<table width='100%' border='0' cellspacing='0' cellpadding='0'><tbody><tr><td>&nbsp;页次<b><font color=""#990000"">" & sintPageNow & "</font> / " & sintPageMax & " </b>页 "
	sstrPageInfo = sstrPageInfo & " 共<b>" & sintRecordCount & "</b> 条记录 <b>" & sintPageSize & "</b> 条/页 "
	If sintPageNow > 1 then
		sstrPageInfo = sstrPageInfo & "【<b><a href='" & surl & (sintPageNow - 1) & "'>上页</a></b>】"
	End If
	If sintPageMax - sintPageNow => 1 then
		sstrPageInfo = sstrPageInfo & "【<b><a href='" & surl & (sintPageNow + 1) & "'>下页</a></b>】 "
	End If
	sstrPageInfo = sstrPageInfo &"</TD><TD align='right'>分页:"
	PageNMin=sintPageNow-4
	if PageNMin<1 then PageNMin=1' 显示最小页数
	PageNMax=sintPageNow+4
	if PageNMax>sintPageMax then PageNMax=sintPageMax' 显示最大页面
		sstrPageInfo = sstrPageInfo &"<a href='" & surl & "1'><font title='首页' face=webdings>9</font></a> "
	If sintPageNow>5 Then'如果页码值大于5则显示(更前)当前
		sstrPageInfo = sstrPageInfo &"<a href='" & surl & (sintPageNow - 5) & "' ><font title='上五页' face=webdings>7</font></a> "
	End if
	For i =PageNMin To PageNMax'循环输出页码
	If(i=sintPageNow) Then
	sstrPageInfo = sstrPageInfo &"<font color='#FF6600'><b>"& i &"</b></font> "
	else
	sstrPageInfo = sstrPageInfo &"<b><A title='转到第"& i &"页' HREF='" & surl & i &"'>"& i &"</A></b> "
	End if
	Next
	If (sintPageMax-sintPageNow)>5  Then
		sstrPageInfo = sstrPageInfo &"<a href='" & surl & (sintPageNow + 5) & "'><font title='下五页' face=webdings>8</font></a>"
	End if
	sstrPageInfo = sstrPageInfo &"<a href='" & surl & sintPageMax & "' ><font title='尾页' face=webdings>:</font></a>"
	sstrPageInfo = sstrPageInfo &"</td><td align='right'>转到<input maxLength='6' size='2' name='topage' value='"&sintPageNow&"' onkeydown=if(window.event.keyCode==13){window.location.href='"&surl&"'+topage.value;}> <input Class='go' value='GO' type='button' onClick=location.href='"&surl&"'+topage.value>&nbsp;</TD></TR></TBODY></TABLE>"
End Sub
    
  '记录Cookies
  Private Sub SetCookies(Name,NewValue)
	   Response.Cookies("YxBBs").Expires = Date()+1
       Response.Cookies("YxBBs")(Name)=Join(NewValue,"|||")
  End Sub
 '清空Cookies
    Public Sub DelCookiesCache(Name)
        Response.Cookies("YxBBs").Expires = Date()+1
		Response.Cookies("YxBBs")(CookiesCacheName&"_"&Name)=""
	End Sub
   '长整数转换
  Private function toNum(s, Default)
	s = s & ""
	If s <> "" And IsNumeric(s) Then
		toNum = int(s)
	Else
		toNum = Default
	End If
  End function
End Class
 %>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -