欢迎光临
我们一直在努力

asp分页的一个类-ASP教程,ASP应用

建站超值云服务器,限时71元/月

asp分页的一个类,

在50,000条记录下测试过,速度比ado的那个要快多了

<%

************************************************************************************

具体用法

set conn=server.createobject("adodb.connection")

conn.open "driver={sql server};server=(local);uid=sa;pwd=1230;database=music"

set rs = mp.execute("select * from musiclist",conn,29)

while not rs.eof

response.write rs2("musicname")&"<br>"

rs2.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_url&strand&"mypage_pageno=1>"&firstpagetag&"</a>"

response.write "<a

href="&mypage_url&strand&"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 i<11 and currentstartpage<mypage_pagetotal+1

if currentstartpage < 10 then

formatcurrentstartpage = "0" & currentstartpage

else

formatcurrentstartpage = currentstartpage

end if

response.write "<a

href="&mypage_url&strand&"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_url&strand&"mypage_pageno="&(mypage_pageabsolute+10)&">"&nextpagetag&"</a>"

response.write "<a

href="&mypage_url&strand&"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

%>

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » asp分页的一个类-ASP教程,ASP应用
分享到: 更多 (0)

相关推荐

  • 暂无文章