主頁(yè) > 知識(shí)庫(kù) > asp分頁(yè)的一個(gè)類

asp分頁(yè)的一個(gè)類

熱門標(biāo)簽:服務(wù)器配置 Linux服務(wù)器 科大訊飛語(yǔ)音識(shí)別系統(tǒng) 阿里云 Mysql連接數(shù)設(shè)置 電子圍欄 團(tuán)購(gòu)網(wǎng)站 銀行業(yè)務(wù)
asp分頁(yè)的一個(gè)類 
在50,000條記錄下測(cè)試過(guò),速度比ado的那個(gè)要快多了 

%

'************************************************************************************
'具體用法
Dim strDbPath
Dim connstr
Dim mp
Set mp = New MyPage
strDbPath = "fenye/db.mdb"
connstr  = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
connstr  = connstr  Server.MapPath(strDbPath)
Set conn  = Server.CreateObject("Adodb.Connection")
conn.open connstr
set rs = mp.Execute("select * from table1",conn,29)
while not rs.eof
    response.write rs("aaaa")"br>"
    rs.MoveNext
wend
mp.pageDispaly()
'************************************************************************************
Class MyPage
    private MyPage_Conn,MyPage_StrSql,MyPage_TotalStrSql,MyPage_RS,MyPage_TotalRS
    private MyPage_PageSize
    private MyPage_PageAbsolute,MyPage_PageTotal,MyPage_RecordTotal
    private MyPage_Url
    public property let conn(strConn)
    set MyPage_Conn = strConn
    end property

    public property let PageSize(intPageSize)
        MyPage_PageSize = Cint(intPageSize)
    end property

    public function PageExecute(strSql)
        MyPage_PageAbsolute = MyPage_PageAbsoluteRequest()
        MyPage_TotalStrSql = FormatMyPage_TotalStrSql(strSql) 
        set MyPage_TotalRS = MyPage_Conn.execute(MyPage_TotalStrSql)
        MyPage_RecordTotal = MyPage_TotalRS("total")
        MyPage_PageTotal = Cint(MyPage_RecordTotal/MyPage_PageSize)
        MyPage_StrSql = FormatMyPage_StrSql(strSql)
        set MyPage_RS = MyPage_Conn.execute(MyPage_StrSql)
        dim i
        i = 0 
        while not MyPage_RS.eof and  i(MyPage_PageAbsolute-1)*MyPage_PageSize
            i = i + 1
            MyPage_RS.MoveNext
        wend
        set PageExecute = MyPage_RS 
    end function

    public function Execute(strSql,strConn,intPageSize)
        conn = strConn
        PageSize = intPageSize
        set Execute = PageExecute(strSql)
    end function

    public function pageDispaly()
        MyPage_Url = ReadMyPage_Url
        firstPageTag = "font face=webdings>9/font>"  '|
        LastPageTag = "font face=webdings>:/font>"  '>>|
        previewPageTag = "font face=webdings>7/font>"  '
        nextPageTag = "font face=webdings>8/font>"  '>>
        dim strAnd
        if instr(MyPage_Url,"?")=0 then
            strAnd = "?"
        else
            strAnd = ""
        end if
        response.write "table width=100%  border=0 cellspacing=0 cellpadding=0>"
        response.write "tr>"
        response.write "td align=left>"
        response.write  "頁(yè)次:"MyPage_PageAbsolute"/"MyPage_PageTotal"頁(yè)nbsp"
        response.write  "主題數(shù):"MyPage_RecordTotal
        response.write "/td>"
        response.write "td align=right>"
        response.write  "分頁(yè):"
        if MyPage_PageAbsolute>10 then
            response.write  "a href='"MyPage_UrlstrAnd"MyPage_PageNo=1'>"firstPageTag"/a>"
            response.write  "a href='"MyPage_UrlstrAnd"MyPage_PageNo="(MyPage_PageAbsolute-10)"'>"previewPageTag"/a>"
        else
            response.write  firstPageTag
            response.write  previewPageTag
        end if
        response.write "nbsp"
        dim CurrentStartPage,i
        i = 1
        CurrentStartPage=(Cint(MyPage_PageAbsolute)\10)*10+1
        if Cint(MyPage_PageAbsolute) mod 10=0 then
            CurrentStartPage = CurrentStartPage - 10
        end if
        while i11 and CurrentStartPageMyPage_PageTotal+1
            if CurrentStartPage  10 then
                FormatCurrentStartPage = "0"  CurrentStartPage
            else
                FormatCurrentStartPage = CurrentStartPage
            end if
            response.write  "a href='"MyPage_UrlstrAnd"MyPage_PageNo="CurrentStartPage"'>"FormatCurrentStartPage"/a>nbsp"
            i = i + 1
            CurrentStartPage = CurrentStartPage + 1
        wend
        if MyPage_PageAbsolute(MyPage_PageTotal-10) then
            response.write  "a href='"MyPage_UrlstrAnd"MyPage_PageNo="(MyPage_PageAbsolute+10)"'>"nextPageTag"/a>"
            response.write  "a href='"MyPage_UrlstrAnd"MyPage_PageNo="MyPage_PageTotal"'>"LastPageTag"/a>"
        else
            response.write  nextPageTag
            response.write  LastPageTag
        end if
        response.write  ""
        response.write "/td>"
        response.write "/tr>" 
        response.write "/table>"
    end function

    public function GetPageNo()
        GetPageNo = cint(MyPage_PageAbsolute)
    end function

    public function GetPageCount()
        GetPageCount = cint(MyPage_PageTotal)
    end function

    public function GetPageNoName()
        GetPageNoName = "MyPage_PageNo"
    end function

    public function GetPageSize()
        GetPageSize = MyPage_PageSize
    end function

    public function GetRecordTotal()
        GetRecordTotal = MyPage_RecordTotal
    end function

    

    private function FormatMyPage_TotalStrSql(strSql)
        FormatMyPage_TotalStrSql = "select count(*) as total "
        FormatMyPage_TotalStrSql = FormatMyPage_TotalStrSql  Mid(strSql,instr(strSql,"from"))
        FormatMyPage_TotalStrSql = Mid(FormatMyPage_TotalStrSql,1,instr(FormatMyPage_TotalStrSql"order by","order by")-1)
    end function

    private function FormatMyPage_StrSql(strSql)
        FormatMyPage_StrSql = replace(strSql,"select","select top "(MyPage_PageAbsolute*Cint(MyPage_PageSize)))
    end function

    private function MyPage_PageAbsoluteRequest()
        if request("MyPage_PageNo")="" then 
            MyPage_PageAbsoluteRequest = 1
        else
            if IsNumeric(request("MyPage_PageNo")) then
                MyPage_PageAbsoluteRequest = request("MyPage_PageNo")
            else
                MyPage_PageAbsoluteRequest = 1
            end if
        end if
    end function

    private function ReadMyPage_Url()
        ReadMyPage_Url = Request.ServerVariables("URL")
        if Request.QueryString>"" then
            ReadMyPage_Url = ReadMyPage_Url  "?"  Request.QueryString 
        end if
        set re = new RegExp
        re.Pattern = "[|?]MyPage_PageNo=\d+?"
        re.IgnoreCase = true
        re.multiLine = true
        re.global = true
        Set Matches = re.Execute(ReadMyPage_Url) 
        For Each Match in Matches  
            tmpMatch = Match.Value
            ReadMyPage_Url = replace(ReadMyPage_Url,tmpMatch,"")
        next
    end function
end Class

%> 


您可能感興趣的文章:
  • asp下計(jì)算分頁(yè)的幾種方法
  • ASP分頁(yè)類(支持多風(fēng)格變換)
  • 透徹掌握ASP分頁(yè)技術(shù)很詳細(xì)的分析
  • asp分頁(yè)(自己整理的2個(gè)分頁(yè)程序)
  • 易心asp分頁(yè)類 v1.0
  • asp分頁(yè)生成html的程序腳本代碼
  • 徹底掌握ASP分頁(yè)技術(shù)雜談
  • 簡(jiǎn)單的ASP分頁(yè)代碼(測(cè)試正確)
  • flash和asp分頁(yè)的一點(diǎn)心得與flash腳本
  • js實(shí)現(xiàn)ASP分頁(yè)函數(shù) HTML分頁(yè)函數(shù)
  • 葉子asp分頁(yè)類
  • ASP分頁(yè)時(shí)計(jì)算頁(yè)面總數(shù)的幾種算法小結(jié)

標(biāo)簽:大理 衢州 萍鄉(xiāng) 棗莊 江蘇 廣元 蚌埠 衡水

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《asp分頁(yè)的一個(gè)類》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266