有時候,大家是不是因為寫一些重複的**而感到煩惱呢?由於在做asp程式時,很多時候都要用到分頁,重複作分頁程式錯誤多不說了,而且影響到作程式的積極性,故寫一分頁函式,方便大家呼叫。如下:
<%
'***************== programmname: 分頁函式 ********************===
' ***************= programmed by bubuy ********************=
' ******************** 2003.10.16 ********************====
function cutpage(sqlstr,conn,datenums,pagenums,urls)'利用ado分頁的函式
dim sql,cn,datenum,pagenum,url,rsdate
sql=trim(sqlstr) '獲得sql語句。
set cn=conn '獲得資料物件
datenum=cint(datenums) '獲得每頁得記錄數
pagenum=cint(pagenums) '獲得當前頁碼
url=trim(urls) '獲得路徑
set rsdate=server.createobject("adodb.recordset")
rsdate.pagesize=datenum
rsdate.open sql,cn,1,1
if rsdate.eof then
response.write("對不起,沒有記錄!
")else
if pagenum="" or pagenum<1 then
pagenum=1
elseif pagenum>rsdate.pagecount then
pagenum=rsdate.pagecount
end if
rsdate.absolutepage =pagenum
dim recordhead,recordlast '定義當前頁開頭記錄和結束記錄
recordhead=1
if pagenum>1 then recordhead=datenum*(pagenum-1)
if pagenum>=rsdate.pagecount then
recordlast=rsdate.recordcount
else
recordlast=datenum*pagenum
end if
response.write("")
response.write("(第"&recordhead&"-"&recordlast&"條,共"&rsdate.recordcount&"條,每頁顯示"&datenum&"條)
")response.write("")
response.write("")
response.write("")
response.write("")
dim id,i
for i=0 to rsdate.fields.count-1 '設定表頭
response.write(""&rsdate.fields(i).name&"
")next
response.write("")
id=0
while not rsdate.eof and id")
else
response.write("")
end if
for each fils in rsdate.fields
response.write(""&fils&"")
next
response.write("")
rsdate.movenext
wend
response.write("")
for i=0 to rsdate.fields.count-1 '設定表尾
response.write(""&rsdate.fields(i).name&"
")next
response.write("")
response.write("
")response.write("")
end if
rsdate.close
set rsdate=nothing
end function
%>
這樣使用
page=request("page")
sql="select * from [table]" '寫sql語句
url="xx.asp"當然也可以是"xx.asp?bubuy=1"
conn大家都知道是定義的什麼吧
呼叫就這樣
call cutpage(sql,conn,"3",page,url)'3代表每頁顯示3條記錄
由於我水平有限,程式中難免有錯,大家順便提提意見。大家也可以新增新得功能或修改已有得功能不過別忘了改後給我乙份噢,謝謝,[email protected]
記錄集分頁顯示策略
可以有以下五種方法實現 1.使用forward only的resultset,rs.next 移動記錄集就可以了 選從50 100 行int currentrow 1 int minrow 50 int maxrow 100 while rs.next if currentrow 2.使用可滾動記錄...
記錄集分頁顯示策略
記錄集分頁顯示策略 可以有以下五種方法實現 1.使用forward only的resultset,rs.next 移動記錄集就可以了 選從50 100行 int currentrow 1 int minrow 50 int maxrow 100 while rs.next if currentrow...
記錄集分頁顯示策略
記錄集分頁顯示策略 可以有以下五種方法實現 1.使用forward only的resultset,rs.next 移動記錄集就可以了 選從50 100行 int currentrow 1 int minrow 50 int maxrow 100 while rs.next if currentrow...