• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    asp分页的一个类
    asp分页的一个类 
    在50,000条记录下测试过,速度比ado的那个要快多了 

    %

    '************************************************************************************
    '具体用法
    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  "页次:"MyPage_PageAbsolute"/"MyPage_PageTotal"页nbsp"
            response.write  "主题数:"MyPage_RecordTotal
            response.write "/td>"
            response.write "td align=right>"
            response.write  "分页:"
            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下计算分页的几种方法
    • ASP分页类(支持多风格变换)
    • 透彻掌握ASP分页技术很详细的分析
    • asp分页(自己整理的2个分页程序)
    • 易心asp分页类 v1.0
    • asp分页生成html的程序脚本代码
    • 彻底掌握ASP分页技术杂谈
    • 简单的ASP分页代码(测试正确)
    • flash和asp分页的一点心得与flash脚本
    • js实现ASP分页函数 HTML分页函数
    • 叶子asp分页类
    • ASP分页时计算页面总数的几种算法小结
    上一篇:收藏的ASP常用的函数集
    下一篇:ASP开发网页牢记注意事项
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    asp分页的一个类 asp,分页,的,一个,类,asp,