<script language=vbscript runat=server>
************************************************************************
script compont object model
design for active server pages
copyright 2004 version 2.0
made by 尹曙光
************************************************************************
function createcpagenavbar()
set createcpagenavbar=new cpagenavbar
end function
class cpagenavbar
public splitsize 分页显示的容量
public pnwidth
public pnalign
public plwidth 表格宽度
public plalign 表格的对齐方式
private pagesize
private recordcount 总记录数]
private pagecount 总页数
private currentpage 当前的页码
private splitcount 分页的显示的总页数
private currentsplit 当前的分页的分页码
===============================================================
private sub class_initialize setup initialize event.
splitsize=10
pnwidth="100%"
pnalign="right"
plwidth="100%" //表格宽度
plalign="right" // 表格的对齐方式
pagesize=0
recordcount=0
currentpage=1
pagecount=1
splitcount=1
currentsplit=1
end sub
private sub class_terminate setup terminate event.
end sub
public sub initpagenavbar(byval ipagesize,byval irecordcount)
pagesize=cint(ipagesize)
recordcount=clng(irecordcount)
pagecount=fix(recordcount/pagesize)+1
splitcount=fix(pagecount/splitsize)+1
end sub
public function getcurrentpage()
on error resume next
dim pageno
pageno =trim(request.querystring ("_page_no_"))
如果没有选择第几页,则默认显示第一页;
if ( (not isnumeric(pageno)) or pageno="") then
pageno =1
end if
currentpage=clng(pageno)
if (currentpage<1) then
currentpage=1
end if
if (currentpage>pagecount) then
currentpage=pagecount
end if
currentsplit=fix(currentpage/splitsize)+1
getcurrentpage=currentpage
end function
public function pldisplay()
dim strbuilder,p,itmp
strbuilder=""
首组为第0族
strbuilder=strbuilder+"<table border=0 cellpadding=0 cellspacing=0 "
strbuilder=strbuilder+" width="&plwidth&" align="&plalign&">"
strbuilder=strbuilder+" <tr> "
strbuilder=strbuilder+" <td valign=middle align=right>分页:"
if (currentsplit=1) then
strbuilder=strbuilder+"<font face=webdings color=#ff0000>9</font> "
strbuilder=strbuilder+"<font face=webdings color=#ff0000>7</font>"
else
strbuilder=strbuilder+"<a href=?_page_no_=1 title=首页><font face=webdings>9</font></a> "
strbuilder=strbuilder+"<a href=?_page_no_="&cstr((currentsplit-2)*splitsize)&" title=上"&cstr(splitsize)&"页><font face=webdings>7</font></a> "
end if
strbuilder=strbuilder+"<b>"
分页列表
itmp=(currentsplit-1)*splitsize+1
for i=itmp to (itmp+splitsize-1)
if (i=currentpage) then
strbuilder=strbuilder+"<font color=#000000>"&cstr(i)&"</font> "
else
strbuilder=strbuilder+"<a href=?_page_no_="&cstr(i)&" title=转到: 第"&cstr(i)&"页>"&cstr(i)&"</a> "
end if
if (i>=pagecount) then
exit for
end if
next
strbuilder=strbuilder+"</b>"
显示下十页
if (currentsplit<splitcount) then
strbuilder=strbuilder+"<a href=?_page_no_="&cstr((currentsplit)*splitsize)&" title=下十页><font face=webdings>8</font></a> "
strbuilder=strbuilder+"<a href=?_page_no_="&cstr(pagecount)&" title=尾页><font face=webdings>:</font></a> "
else
strbuilder=strbuilder+"<font face=webdings color=#ff0000>8</font>"
strbuilder=strbuilder+"<font face=webdings color=#ff0000>:</font>"
end if
strbuilder=strbuilder+"</td></tr></table>"
response.write(strbuilder)
end function
public function pndisplay()
dim strbuilder,nextpageno
strbuilder=""
strbuilder=strbuilder+"<table border=0 cellpadding=0 cellspacing=0 "
strbuilder=strbuilder+" width="&pnwidth&" align="&pnalign&">"
strbuilder=strbuilder+"<tr>"
strbuilder=strbuilder+"<td valign=middle>页次:[<b>"&cstr(currentpage)&"</b>/<b>"&cstr(pagecount)&"</b>]页 每页[<b>"&cstr(pagesize)&"</b>]条 总记录数:[<b>"&cstr(recordcount)&"</b>]条</td>"
strbuilder=strbuilder+"<td align=right>"
if (cint(currentpage)>1) then
nextpageno=cint(currentpage)-1
strbuilder=strbuilder+"[<a href=?_page_no_="&cstr(nextpageno)&" title=转到上一页>上一页</a>]"
end if
if (cint(currentpage)<cint(pagecount)) then
nextpageno=cint(currentpage)+1
strbuilder=strbuilder+"[<a href=?_page_no_="&cstr(nextpageno)&" title=转到下一页>下一页</a>]"
end if
strbuilder=strbuilder+"</td></tr></table>"
response.write(strbuilder)
end function
end class
</script>
