2012-12-13 3 views
2

저는 건물에 페이지 매김을 만들 때 dopefly's Pagination.cfc을 사용하고 있습니다. 그러나 내가 원하는 방식으로 구체적으로 대응할 수는 없습니다.Coldfusion 페이지 매기기 - 페이지 번호 고정

나는 그래서 항상 중간에 4를 표시합니다이

*1* 2 3 4 ... x   
1 *2* 3 4 ... x   
1 2 *3* 4 ... x   
1 2 3 *4* ... x   
1 ... 4 *5* 6 7 ... x 

처럼 시작 있도록 적절한 말에 보여주는 첫 번째와 마지막 페이지와, 그걸 얻기 위해 노력하고있어.

그러나, 지금은

*1* 2 3 4 ... x 
1 *2* 3 4 5 ... x 
1 2 *3* 4 5 6 ... x 
1 2 3 4 *5* 6 7 ... x 
1 2 3 4 5 *6* 7 8 ... x 
1 ... 3 4 5 6 *7* 8 9 ... x 
1 ... 4 5 6 7 *8* 9 10 ... x 

을 것입니다 그래서 표시됩니다 (8)이 때까지 때 다음 다음, 중간에 7을 유지하기보다는 4와 함께 머물 시작됩니다려고 계속 끝에있는 첫 번째/마지막과 항상 중간에 4를 표시하는 5 페이지를 누르십시오.

E : 나는이 문서에 정의 된 setNumericEndBufferCount()setNumericDistanceFromCurrentPageVisible() 변수에 대한 재생 해봤, 그들은 행동 CFC의 방법의 그러나 내 지식이 실제 cfc이 (같은 duncan 아래 제안)를 수정하기에 충분히 넓은하지 않습니다 .

+0

그래서 무엇을 시도 했습니까? [documentation] (http://www.dopefly.com/projects/pagination/pagination_cfc_documentation.cfm)에는이를 처리 할 수있는 설정이 표시됩니다. –

+0

@PeterBoughton - 실제로 그렇습니다.하지만 수정을 시도하는 설정에 관계없이 원하는 방식대로 작동하지 않습니다. –

+0

그래서 *** 당신은 무엇을 시도 했습니까? *** - 당신이 생각하는 코드를 보여주십시오. 버그/기능 부족으로 확인하거나 적절하게 작동하는 방법을 제안 할 수 있습니다. –

답변

1

Joshua, 내 페이지 매김 라이브러리를 이용해 주셔서 감사합니다! 미안하지만 네가 기대했던대로 행동하지 않아. 문제는 최근 게시 된 기능 요청과 비슷하게 보이지만 setFixedMaximumNumbersShown 옵션을 요청하지만 일종의 탄력성과 약간의 탄력성은 Amazon의 페이지 매김과 비슷하지만 사용자가 알게 되듯이 사용자의 기록을 검토 할 때만 커집니다. 이 문제는 직접 해결할 수 있지만 CFC 사용 제한을 늘려야합니다.

해결 방법은 내 구성 요소를 확장하는 구성 요소 (bouncyPagination.cfc)를 만드는 것입니다. Pagination.cfc. 작업을 수행하려면 적어도 하나 이상의 메소드를 대체해야합니다. 우선 documentation on 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> 

는 renderNumericLinksHTML 기능에, Pagination.cfc의 코드를 살펴 보자. 복사하여 붙여 넣기를 시작한 다음 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 라이센스로 공유 할 수 있다면 코드를 보내 주면 다음 릴리스에 포함시킬 것입니다.

0

the documentationNumericDistanceFromCurrentPageVisible을 사용하여 달성 할 수있는 것 같습니다. 문제는 현재 링크의 양쪽을 사용하는 링크의 수를 나타냅니다. 그래서 당신은 2로 설정할 수 있고 현재의 양쪽에 2 개의 링크, 즉 5의 그룹을 표시 할 것입니다. 4 그룹을 얻으려면 먼저 1 개의 링크와 2 개의 링크를 표시해야합니다 (또는 그 반대). 또는 링크 목록의 시작 또는 끝 부분에있는 경우 3 개 또는 그 전의 링크.

CFC 자체에 대해 자세히 알아보고 NumericDistanceFromCurrentPageVisible을 처리하는 방법을 살펴보고 이전/이후에 표시 할 링크 수에 대해 2 개의 매개 변수를 사용하도록 확장 할 수 있는지 확인하십시오. 또는 그룹 내에서 표시 할 링크 수에 대한 기준으로 해당 매개 변수를 사용하도록 수정하십시오.

+0

나는 이것을하기 위해'.cfc'가 수정 될 수 있음을 이해하지만, 2 개의 추가 매개 변수를 취하는 함수를 확장하는 법을 모릅니다. 따라서 여기에 질문을 올렸습니다. 죄송 합니다만 내가 충분히 명확하지 않으면, 나는 내 질문을 편집 할 것입니다. –

관련 문제