asp分页系统

asp分页系统

分页程序

'定义分页全局变量
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
    
end if
end Sub


'分页显示
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 & "<-"
    temp_page 
= temp_page & "&nbsp;"
    
    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 & "->"
    temp_page 
= temp_page & "&nbsp;"
    
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
        
next
        response.write show_page() 
'分页显示
    end if
else
    response.Write(
"暂时没有信息")
end if
posted @ 2008-11-25 19:21 cloudgamer 阅读(...) 评论(...)  编辑 收藏