分頁程式
'定義分頁全局變量
dim code,mdbsql,Page_size,Totalrec,TotalPage,currentPage
'參數處理,并把相應代碼插入code(分頁)和mdbsql(資料庫查詢)中
Sub s_keyword(s_value)
keyword = s_value '建議先對keyword進行處理
if keyword<>"" then
code = code &"&keyword="& keyword
text=Split(keyword) '分詞
for each word in text
mdbsql = mdbsql &" and charindex('"&trim(word)&"',hw_area)>0"
next
end if
end Sub
'sql搜尋主程式,頁次,查找字段,關鍵字段(唯一索引),排序字段
Sub fSql(s_page,s_table,s_str,s_key,s_order,mdbconn)
if s_page <> "" and IsNumeric(s_page) then currentPage = cint(s_page) else currentPage=1
if mdbsql = "" then mdbsql = "1=1"
Totalrec = mdbconn.execute("select count(*) from ["&s_table&"] where "&mdbsql)(0)
if Totalrec > 0 then
TotalPage = Totalrec\Page_size
If (Totalrec Mod Page_size) Then TotalPage = TotalPage+1
If TotalPage < 1 Then TotalPage = 1
If currentPage > TotalPage Then currentPage = TotalPage
If TotalPage = 1 then Page_size=Totalrec
if currentPage = 1 then
mdbsql = "select top "&Page_size&" "&s_str&" from ["&s_table&"] where "&mdbsql&" order by "&s_order&" desc"
else if s_order <> "" and s_order <> s_key then
mdbsql = "select top "&Page_size&" "&s_str&" from ["&s_table&"] where "&mdbsql&" and "&s_key&" not in (select top "&(currentPage-1)*Page_size&" "&s_key&" from ["&s_table&"] where "&mdbsql&" order by "&s_order&" desc) order by "&s_order&" desc"
else
mdbsql = "select top "&Page_size&" "&s_str&" from ["&s_table&"] where "&mdbsql&" and "&s_key&" < (select min ("&s_key&") from (select top "&(currentPage-1)*Page_size&" info_id from ["&s_table&"] where "&mdbsql&" order by "&s_key&" desc) as T) order by "&s_key&" desc"
end if
'分頁顯示
Function show_page()
temp_page = ""
If currentPage <> 1 Then temp_page = temp_page & "<a href='?page=1"&code&"' title='第一頁'><<-</a>" Else temp_page = temp_page & "<<-"
temp_page = temp_page & "&nbsp;"
If currentPage > 1 Then temp_page = temp_page & "<a href='?page=" & currentPage - 1 &code&"&' title='前一頁'><-</a>" Else temp_page = temp_page & "<-"
PageStart = currentPage - 5
If PageStart < 1 Then PageStart = 1
PageEnd = PageStart + 10
If PageEnd > TotalPage Then PageEnd = TotalPage
For Temp = PageStart To PageEnd
If Temp = currentPage Then temp_page = temp_page & "[" & Temp & "]&nbsp;" Else temp_page = temp_page & "<a href='?page="&Temp&""&code&"' title='第"&Temp&"頁'>"&Temp&"</a>&nbsp;"
Next
If currentPage < TotalPage Then temp_page = temp_page & "<a href='?page=" &currentPage + 1 & ""&code&"' title='下一頁'>-></a>" Else temp_page = temp_page & "->"
If currentPage < TotalPage Then temp_page = temp_page & "<a href='?page=" & TotalPage &code&"' title='最後一頁'>->></a>" Else temp_page = temp_page & "->>"
temp_page = temp_page & "&nbsp;&nbsp;共 "&Totalrec&" 條記錄,目前第 "&currentPage&" 頁,共 "&TotalPage&" 頁&nbsp;"
temp_page = temp_page & "&nbsp;&nbsp;到第<input name='gopage' id='gopage' type='text' size='3' maxlength='6' value='"&currentPage&"' />頁 <input type='button' value='go' onclick=""location.href='?page='+gopage.value+'"&code&"'"" />"
show_page = temp_page & ""
end Function
'以上程式放到一個function中
使用前定義好變量
'定義參數全局變量
dim keyword
Page_size = 20
mdbsql="flag = 1" '可以先定義固定的搜尋條件
'函數會根據參數自動調整code和mdbsql
Call s_keyword(trim(Request("keyword")))
Call s_sql(trim(Request("page")),"title","id","id")
'以上代碼一般放在程式開頭
使用
'内容顯示
if Totalrec > 0 then
set rs=server.createobject("adodb.recordset")
rs.open mdbsql,toconn,1,1
If rs.bof and rs.Eof Then
response.Write("暫時沒有資訊")
else
For Temp_FN = 1 to Page_size
If rs.Eof Then Exit For
response.write rs("title")
rs.movenext
response.write show_page() '分頁顯示
else
response.Write("暫時沒有資訊")
end if