Coldfusion MX PageList之骨灰版_ColdFusion教程-查字典教程网
Coldfusion MX PageList之骨灰版
Coldfusion MX PageList之骨灰版
发布时间:2016-12-28 来源:查字典编辑
摘要:你要的功能都在这里,注意是PAGELIST,这是CCF核心代码之一,相信能比我这代码还少的PAGELIST少了.功能绝对没有打折扣.包括pa...

你要的功能都在这里,注意是PAGELIST,这是CCF核心代码之一,相信能比我这代码还少的PAGELIST少了.功能绝对没有打折扣.包括pagelist首页/末页,上页/下页,页码可以设置显示数字多少,这避免了数量一多起来把pagelist拉的好长....

在调用PAGELIST的源文件中定义下面这些变量:

<cfsetrowsperpage=10><--->

<cfparamname="URL.startrow"default="1"type="numeric">

<cfsettotalrows=newarticle.Recordcount>

<cfsetendrow=Min(URL.startrow+rowsperpage-1,totalrows)>

<cfsetstartRowNext=endrow+1>

<cfsetstartrowBack=URL.startrow-rowsperpage>

Pagelist代码:可以保持成一个网页,然后插入到你要显示的地方就可以了.把里面的查询变量名修改成你自己的查询变量名就可以了.

<cfsettingenablecfoutputonly="Yes"><->

<cfparamname="page"default=1type="numeric"><->

<cfparamname="n"default=7type="numeric"><->

<cfsetmin=page-Int(n/2)>

<cfsetmax=page+Int(n/2)>

<cfifminLT1>

<cfsetmax=max-(min-1)>

<cfsetmin=1>

</cfif>

<cfifmaxGTCeiling(newarticle.recordcount/rowsPerPage)>

<cfsetmin=min-(max-Ceiling(newarticle.recordcount/rowsPerPage))>

<cfsetmax=Ceiling(newarticle.recordcount/rowsPerPage)>

</cfif>

<cfifminlt1>

<cfsetmin=1>

</cfif>

<>

<cfifpageNEQ1>

<cfoutput>

<ahref="#CGI.SCRIPT_NAME#?StartRow=1&Page=1"title="首页"><<</a>

</cfoutput>

</cfif>

<>

<cfloopindex="x"from="#min#"to="#max#">

<cfsetnextpage=x*rowsperpage-(rowsperpage-1)>

<cfoutput>

<cfifpageeqx>[#x#]<cfelseifnextpageLTEnewarticle.recordcount>

<ahref="#CGI.SCRIPT_NAME#?StartRow=#nextpage#&Page=#x#">#x#</a>

</cfif>

</cfoutput>

</cfloop>

<>

<cfsetlaststartrow=newarticle.recordcount-rowsPerPage+1>

<cfifpageNEQMAX>

<cfoutput>

<ahref="#CGI.SCRIPT_NAME#?StartRow=#laststartrow#&Page=#Ceiling(newarticle.recordcount/rowsPerPage)#">>></a>

</cfoutput>

</cfif>

<>

<cfoutput>

<CFIFstartrowBackGT0>

<cfifpageEQ1>

<CFSETNTback=1>

<cfelse>

<cfsetNTback=page-1>

</cfif>

<ahref="#CGI.SCRIPT_NAME#?startrow=#startrowback#&page=#NTback#">上一页</a>

</CFIF>

<CFIFstartrownextLTEtotalrows>

<cfsetNTnext=page+1>

<ahref="#CGI.SCRIPT_NAME#?startrow=#startrownext#&page=#NTnext#">下一页</a>

</CFIF>

</cfoutput>

<cfsettingenablecfoutputonly="no"><->

代码拷贝框

以下是引用片段:

<cfsettingenablecfoutputonly="Yes"><->

<cfparamname="page"default=1type="numeric"><->

<cfparamname="n"default=7type="numeric"><->

<cfsetmin=page-Int(n/2)>

<cfsetmax=page+Int(n/2)>

<cfifminLT1>

<cfsetmax=max-(min-1)>

<cfsetmin=1>

</cfif>

<cfifmaxGTCeiling(newarticle.recordcount/rowsPerPage)>

<cfsetmin=min-(max-Ceiling(newarticle.recordcount/rowsPerPage))>

<cfsetmax=Ceiling(newarticle.recordcount/rowsPerPage)>

</cfif>

<cfifminlt1>

<cfsetmin=1>

</cfif>

<>

<cfifpageNEQ1>

<cfoutput>

<ahref="#CGI.SCRIPT_NAME#?StartRow=1&Page=1"title="首页"><<</a>

</cfoutput>

</cfif>

<>

<cfloopindex="x"from="#min#"to="#max#">

<cfsetnextpage=x*rowsperpage-(rowsperpage-1)>

<cfoutput>

<cfifpageeqx>[#x#]<cfelseifnextpageLTEnewarticle.recordcount>

<ahref="#CGI.SCRIPT_NAME#?StartRow=#nextpage#&Page=#x#">#x#</a>

</cfif>

</cfoutput>

</cfloop>

<>

<cfsetlaststartrow=newarticle.recordcount-rowsPerPage+1>

<cfifpageNEQMAX>

<cfoutput>

<ahref="#CGI.SCRIPT_NAME#?StartRow=#laststartrow#&Page=#Ceiling(newarticle.recordcount/rowsPerPage)#">>></a>

</cfoutput>

</cfif>

<>

<cfoutput>

<CFIFstartrowBackGT0>

<cfifpageEQ1>

<CFSETNTback=1>

<cfelse>

<cfsetNTback=page-1>

</cfif>

<ahref="#CGI.SCRIPT_NAME#?startrow=#startrowback#&page=#NTback#">上一页</a>

</CFIF>

<CFIFstartrownextLTEtotalrows>

<cfsetNTnext=page+1>

<ahref="#CGI.SCRIPT_NAME#?startrow=#startrownext#&page=#NTnext#">下一页</a>

</CFIF>

</cfoutput>

<cfsettingenablecfoutputonly="no"><->

GAMEOVER.

说明一下上面没有注释的几段控制语句:

<cfparamname="n"default=7type="numeric">

这里设置默认为7,也就是当你在浏览12条的记录的时候,会显示91011[12]131415

数一下,是不是7条,这是重要的一部分,你也可以设置为双数,但是效果不会怎么好,不平衡了.

另外上面还有自动隐藏的功能.例如我在最后一页了,不会出现末页和下一页.

再次提醒一下:你必须把你自己的查询变量名替换newarticle.recordcount这个我设置的变量名.最好用查找/替换一次全部换掉.

相关阅读
推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  • 最新ColdFusion学习
    热门ColdFusion学习
    脚本专栏子分类