沒有用正常的循環(huán)tr內(nèi)循環(huán)td的方法,所以就沒有計算最后一頁的記錄集數(shù)量。
但當(dāng)記錄集不足時也同樣能夠自動補(bǔ)空行空列,如有不足請指出,謝謝。
使用方法很簡單:
復(fù)制代碼 代碼如下:
%
showData("查詢語名")
Call pagehead(行數(shù),列數(shù))
'-------------------------------------------------------------------------------
'可以把下面的Response.Write()寫到函數(shù)里面,看個人的愛好了。
Response.Write(FormatCRtable(表格寬度,表格高度))
Response.Write(PageFoot())
Call closeData()
%>
函數(shù)如下:
復(fù)制代碼 代碼如下:
%
'-------------------------------------------------------------------------------
'Copyright 2005 by Jorkin.All Rights Reserved
'-------------------------------------------------------------------------------
Public rs
Public pageno,Cols,Rows,maxpageno,maxredcount,maxpagesize
'-------------------------------------------------------------------------------
Public Function showData(sqlstrings)
Set rs=Server.CreateObject("ADODB.Recordset")
rs.open sqlstrings,oconn,1,3
End Function
Public Function closeData()
rs.close
Set rs=Nothing
End Function
'初始化分頁
'MaxRows =最大行數(shù)
'MaxCols =最大列數(shù)
'-------------------------------------------------------------------------------
Public Function PageHead(MaxRows,MaxCols)
'-------------------------------------------------------------------------------
Rows=MaxRows
Cols=MaxCols
maxpagesize=1
maxredcount=0
maxpageno=0
pageno=0
'-------------------------------------------------------------------------------
maxredcount = rs.recordcount
If maxredcount>0 then
maxpagesize = Rows*Cols
maxpageno = Cint((maxredcount+maxpagesize-1)/maxpagesize)
rs.pagesize = maxpagesize
pageno=Request("pageno")
If IsEmpty(pageno) Or Not IsNumeric(pageno) Or CInt(pageno)1 Or CInt(pageno)>Rs.Pagecount Then
Pageno=1
End If
rs.absolutePage=pageno
End If
On Error Resume Next
End Function
'分頁函數(shù)尾
'無參數(shù)
'-------------------------------------------------------------------------------
Public Function PageFoot()
strr="table width=""500"" border=""0"" cellpadding=""0"" cellspacing=""0"">" VbCrLf
strr=strr" tr>" VbCrLf
strr=strr" td valign=""top"">div align=""Right"">"
'大于1頁才會顯示首頁和上一頁(可選)
' If pageno>1 Then
strr=strr"a href=""?pageno=1"" title=""首頁"">font face = Webdings>9/font>/a>"
strr=strr" "
strr=strr"a href=""?pageno="pageno-1""" title=""上一頁"">font face = Webdings>7/font>/a>"
' End If
strr=strr" "pageno" "
'小于最大頁數(shù)才會顯示下一頁和尾頁(可選)
' If pagenomaxpageno Then
strr=strr"a href=""?pageno="pageno+1""" title=""下一頁"">font face = Webdings>8/font>/a>"
strr=strr" "
strr=strr"a href=""?pageno="maxpageno""" title="""">font face = Webdings>:/font>/a>"
' End If
strr=strr" "
strr=strr(pageno-1)*maxpagesize+1"/"maxredcount"條記錄"
strr=strr" "
strr=strrpageno"/"maxpageno"頁"
strr=strr"/div>/td>" VbCrLf
strr=strr" /tr>" vbCrLf
strr=strr"/table>"
PageFoot=strr
End Function
'進(jìn)行行列格式化函數(shù)
'TableWidth =表格寬度
'TableHeight =表格高度(因?yàn)g覽器不同可能無效)
'-------------------------------------------------------------------------------
Public Function FormatCRtable(TableWidth,TableHeight)
Dim i,strr
i=0
strr=""
strr=strr"table width="""TableWidth""" border=""0"" cellspacing=""0"" cellpadding=""0"">" vbCrLf
strr=strr" tr>" VbCrLf
If maxredcount>0 Then
Do While imaxpagesize
i=i+1
If Not Rs.eof Then
strr=strr" td width="""TableWidth/Cols""" height="""Tableheight/Rows""">有記錄則進(jìn)行輸出/td>" vbCrLf
Rs.movenext
Else
strr=strr" td width="""TableWidth/Cols""" height="""Tableheight/Rows""">記錄集不足時補(bǔ)余/td>" VbCrLf
End If
If i Mod Cols = 0 Then
strr=strr" /tr>" VbCrLf
strr=strr" tr>" vbCrLf
End If
Loop
Else
strr=strr"td height="""TableWidth""" valign=""top"">目前沒有記錄集/td>"
End if
strr=strr" /tr>" VbCrLf
strr=strr"/table>" VbCrLf
FormatCRtable=strr
End Function
%>
代碼還有很多不足,而且寫的也不是很嚴(yán)謹(jǐn),見笑了。
以后可以會改為Class
轉(zhuǎn)自:http://jorkin.reallydo.com/article.asp?id=15