首先,我对 ColdFusion 很陌生,但学得很快。因此,我正在尝试构建一个大型数据库,最初每页显示 25 行的所有结果,并有一个下一个/上一个链接来浏览页面。
这一切都工作正常,但是当我执行搜索时,当新结果显示大约几页时,分页链接不起作用。当我单击“下一步”链接时,它会返回到原始的所有记录显示。我该如何解决这个问题,或者我需要做什么才能让它发挥作用?
抱歉,我是发帖新手,这是我的第一篇。希望这更好。
我的分页代码...
<cfset Next = StartRow + DisplayRows>
<cfset Previous = StartRow - DisplayRows>
<cfoutput>
<cfif Previous GTE 1>
<a href="#CGI.Script_Name#?StartRow=#Previous#"><b>Previous #DisplayRows# Records</b></a>
<cfelse>
Previous Records
</cfif>
<b> | </b>
<cfif Next lte records.RecordCount>
<a href="#CGI.Script_Name#?StartRow=#Next#"><b>Next
<cfif (records.RecordCount - Next) lt DisplayRows>
#Evalute((records.RecordCount - Next)+1)#
<cfelse>
#DisplayRows#
</cfif>Records</b></a>
<cfelse> Next Records
</cfif>
<cfoutput>
我的代码在顶部...
<cfparam name="StartRow" default="1">
<cfparam name="DisplayRows" default="25">
<cfset ToRow = StartRow + (DisplayRows - 1)>
<cfif ToRow gt records.RecordCount>
<cfset ToRow = records.RecordCount>
</cfif>
如果您需要查看更多内容,请告诉我...谢谢。
这是我编写的一个示例(抱歉,如果它很简洁),它涵盖了您已经与马克讨论过的内容。我也喜欢马克的<cfloop>
上面的例子(下面)。哈哈...这个回应最终会在哪里。
所以我们有:
- 查询记录数(最大)
- 从你的范围开始
- 在你的范围内结束
- 每页输出
为您的下一组记录提供额外的 pageNum 查询字符串(我认为这是您想要的)。
然后它在您的页面中看起来像这样:
<cfparam name="pageNum" default="1">
<cfquery name="q" datasource="#application.dsn#">
select * from yourTable
</cfquery>
<cfset maxRows = 10>
<cfset startRow = min( ( pageNum-1 ) * maxRows+1, max( q.recordCount,1 ) )>
<cfset endRow = min( startRow + maxRows-1, q.recordCount )>
<cfset totalPages = ceiling( q.recordCount/maxRows )>
<cfset loopercount = round( q.recordCount/10 )>
<cfoutput>
<cfloop from="1" to="#looperCount#" index="i">
<a href="?pageNum=#i#">#i#</a>
</cfloop>
</cfoutput>
<br><br>
<cfoutput
query="q"
startrow="#startRow#"
maxrows="#maxRows#">
#id#<br>
</cfoutput>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)