Joshua,感谢您使用我的分页库!抱歉,它的行为与您希望的不完全一样。您的问题看起来类似于最近发布的功能请求,请求setFixedMaximumNumbersShown选项,但具有某种弹性计数和某种弹性,有点像亚马逊的分页,但正如您所注意到的,它只会随着您对记录的分页而增长。您可以自己解决此问题,但您将不得不稍微扩展您对 CFC 的使用限制。
bouncyPagination.cfc
解决方案是创建一个扩展我的组件的组件(我们称之为Pagination.cfc
. 您将需要覆盖至少一种方法来完成您的任务。您可以先阅读有关 Extending Pagination.cfc 的文档,它可能会有所帮助。您的代码将如下所示。
<cfcomponent extends="Pagination">
<cffunction name="renderNumericLinksHTML">
<!--- Your improved bouncy numeric links HTML generation here --->
<!--- Start by copying & pasting code from the matching --->
<!--- renderNumericLinksHTML method in Pagination.cfc --->
</cffunction>
</cfcomponent>
查看Pagination.cfc
renderNumericLinksHTML 函数中的代码。从复制和粘贴开始,然后BouncyPagination.cfc
根据您想要的任何逻辑重写这些数字链接的写入方式。您甚至可以添加一些方法来获取和设置数字的边界,在您的示例中,4
就是幻数。我想你会在你的组件中添加这样的东西。
<!--- Set your new parameter's default by overriding the init method --->
<cffunction name="init">
<cfset variables.my.BouncyBounds = 4 />
<return super.init() />
</cffunction>
<!--- Create getter/setter. Note the rendered=false is a flag to force HTML recomposition when a UI option changes. --->
<cffunction name="getBouncyBounds">
<cfreturn variables.my.bouncyBounds />
</cffunction>
<cffunction name="setBouncyBounds">
<cfargument name="_BouncyBounds" type="string" />
<cfset variables.my.BouncyBounds = arguments._BouncyBounds/>
<cfset variables.my.rendered = false />
</cffunction>
您的新renderNumericLinksHTML
方法将调用getBouncyBounds()
以编程方式更改较新的弹性分页方法的边界。
我希望这对你有所帮助——这就是我在没有为你做作业的情况下所做的。如果您编写了适合您的东西,并且您可以使用 BSD 许可证共享,请将代码发送给我,我将在下一个版本中包含它。