欢迎光临
我们一直在努力

asp分页的基于对象的解决-ASP教程,ASP应用

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

在论坛上有不少的关于asp分页的文章,基本思想是一致的,我把这些网友的思路深化了一下,用javascript套上了一层基于对象的外衣,这样调用起来就不显得乱了,其它的话就不多说了,详见程序中的注释。

下边是源程序:

<script language=javascript runat=server>

function trim(str)//去掉字符串的首尾空格

{ var tmpstr=new string(str)

return tmpstr.replace(/(^\s*)|(\s*$)/g, "");

}

</script>

<script language=javascript runat=server>

// ************************************************************************

// script compont object model

// design for active server pages

//

// copyright 2003 version 1.0

// made by yinshuguang

// all rights reserved.

// ************************************************************************

function jpagenavbar(){

_lb__prototype();

}

function _lb__prototype()

{

// public members

jpagenavbar.prototype.pagesize="0"

jpagenavbar.prototype.recordcount="0" //总记录数

jpagenavbar.prototype.pagecount="1" //总页数

jpagenavbar.prototype.currentpage="1"

jpagenavbar.prototype.pnwidth="100%"

jpagenavbar.prototype.pnalign="right"

jpagenavbar.prototype.plwidth="100%" //表格宽度

jpagenavbar.prototype.plalign="right" // 表格的对齐方式

// private members

//public methods

jpagenavbar.prototype.getcurrentpage=_getcurrentpage

jpagenavbar.prototype.pndisplay = _pn_show;

jpagenavbar.prototype.pldisplay = _pl_show;

//private methods

//scope implementation in _lb__prototype function

function _getcurrentpage(){

var pageno=new string() //当前显示的是第几页

//取得当前页

pageno = request.querystring ("pageno")

pageno=ftrim(pageno)

//如果没有选择第几页,则默认显示第一页;

if (pageno=="") {

pageno = 1

}

this.currentpage=pageno

return pageno

}

function _pl_show(){

var strbuilder=new string()

strbuilder=""

var p=(this.currentpage-(this.currentpage%10))/10 //计算分页显示的页数

//首组为第0族

strbuilder+="<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" "

strbuilder+=" width=\""+this.plwidth+"\" align=\""+this.plalign+"\">"

strbuilder+=" <tr> "

strbuilder+=" <td valign=\"middle\" align=\"right\">分页:"

if (this.currentpage==1){

strbuilder+="<font face=\"webdings\" color=\"#ff0000\">9</font> "

}

else{

strbuilder+="<a href=\"?pageno=1\" title=\"首页\"><font face=\"webdings\">9</font></a>

"

}

//上十页

if (p*10>0){

strbuilder+="<a href=\"?pageno="+(p*10)+"\" title=上十页><font

face=\"webdings\">7</font></a> "

}

strbuilder+="<b>"

//分页列表

for(var i=p*10+1;i<=p*10+10;i++){

if (i==this.currentpage){

strbuilder+="<font color=\"#000000\">"+i+"</font> "

}

else{

strbuilder+="<a href=?pageno="+i+" title=\"转到: 第"+i+"页\">"+i+"</a> "

}

if (i>=this.pagecount) break;

}

strbuilder+= "</b>"

//显示下十页

if (i<this.pagecount){

strbuilder+="<a href=\"?pageno="+i+"\" title=\"下十页\"><font

face=\"webdings\">8</font></a> "

}

//显示尾页

if (this.currentpage==this.pagecount){

strbuilder+= "<font face=\"webdings\" color=\"#000000\">:</font> "

}

else{

strbuilder+= "<a href=?pageno="+this.pagecount+" title=\"尾页\"><font

face=\"webdings\">:</font></a> "

}

strbuilder+= "</td></tr></table>"

response.write(strbuilder)

}

function _pn_show(){

var strbuilder=new string()

var nextpageno

strbuilder=""

strbuilder+="<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" "

strbuilder+=" width=\""+this.pnwidth+"\" align=\""+this.pnalign+"\">"

strbuilder+="<tr>"

strbuilder+="<td valign=\"middle\">页次:

[<b>"+this.currentpage+"</b>/<b>"+this.pagecount+"</b>]页 每页[<b>"+this.pagesize+"</b>]条 总记录

数:[<b>"+this.recordcount+"</b>]条</td>"

strbuilder+="<td align=\"right\">"

if (this.currentpage>1){

nextpageno=this.currentpage

nextpageno–

strbuilder+="[<a href=?pageno="+nextpageno+" title=\"转到上一页\">上一页</a>]"

}

if (this.currentpage<this.pagecount){

nextpageno=this.currentpage

nextpageno++

strbuilder+="[<a href=?pageno="+nextpageno+" title=\"转到下一页\">下一页</a>]"

}

strbuilder+="</td></tr></table>"

response.write(strbuilder)

}

}

</script>

在调用这个对象之时,注意保存sql语句的查询条件下面我的解决方法:

<@language=javascript>

var tj=trim(request.form("tj"))

//或 var tj=trim(request.querystring("tj"))

if (tj==""){

//表明不是从查询页传过来的条件,而是从分页导向过来

tj=trim(session("tj"))

}

else{ //注意保存条件

session("tj")=tj

}

这仅是一个基本的解决思路,遇到实际情况您可要具体问题具体分析

下边是对象的调用过程

//ado.recordset记录分页对象

//设置分页

var rowcount =3

var fy=new jpagenavbar() //创建对象

if (!rsrpt.eof){

rsrpt.pagesize = rowcount //设置数据集的页记录

fy.pagesize=rowcount

rsrpt.absolutepage =fy.getcurrentpage()

fy.recordcount=rsrpt.recordcount

fy.pagecount=rsrpt.pagecount

}

//显示分页

<%fy.pndisplay() //这是一个具有上一页,下一页方式的导航%>

<%fy.pldisplay() // 这是一个具有页码列表的导航%>

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

相关推荐

  • 暂无文章