<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>