2012-01-09 3 views
1

월요일의 실제 사례가 있습니다. 내가 찾고있는 항목을 기반으로 결과 테이블을 탐색하려고합니다. 예를 들어 페이지에 한 번에 15 개의 결과가 표시되고 결과가 n 개일 수 있습니다. 이 페이지를 가로 지르려면 로직을 사용할 수 없습니다. 나는 이것을하고 싶다 : 입장이 1-15가 아닌 경우에 페이지 2에, 16-30에 3 페이지 등등가는 경우에. 입장이 켜질 때까지 나는 페이지에 얻는다. 또 다른 예 : 내가 찾고있는 항목은 300 항목 중 64 항목이므로 항목을 보려면 5 페이지로 가야합니다.자바 논리적 인 문제 번호 다루기

저는 15의 배수, 모듈로 등 다른 일을하고 있었고 작동시킬 수 없습니다.

이에 어떤 도움을 주시면 감사하겠습니다

, 커피 한 잔 더 ...

+0

페이징 및 조회를 수행하는 코드의 일부를 게시하지 않는 이유는 무엇입니까? – milan

+0

정적 인 것은 내가 찾고있는 항목의 수와 페이지 당 15 개의 결과입니다. 페이지 수는 n입니다. 무엇에서 – whitewolfpgh

+0

? 더 많은 정보? 어떤 방법 으로든 –

답변

7

을 얻는 것은 당신이 원하는 같은 소리 : (. 가정 1 기반의 페이지 번호 및 결과 수)

int pageNumber = ((resultNumber - 1)/pageSize) + 1; 

매핑됩니다

는 페이지 번호 1, 3 페이지 등을 2 페이지, 31-45로 16-30

+0

나는 이것이 그것을 할 것이라고 생각한다, 고마워, 내 인생에 대해 알아낼 수 없었어! 이것을 시험 해보 죠. – whitewolfpgh

+0

좀 더 'leet : int pageNumber = --resultNumber/pageSize + 1;'무엇을 좀 더. 그리고 "예"... 나는 그 결과를 부작용으로 바꿀 수있는 * 읽을 수있는 – Bohemian

+2

@ 보헤미안이라고 생각합니다. 확실히 바람직하지 않습니다. –

0

뭔가이 등을 1-15 결과 :

,
Start offset = (Number of page - 1) * Results Per Page 
    End offset = (Number of page) * Results Per Page 
    Offset on a page = (Number of item) mod Results per page (Substract 1 to have zero-based index) 
    Page Number = (Number of item - 1)/Results Per Page + 1 (Substract 1 to have zero-based index)