페이징 방식 가이드

그리드 페이징 처리 예제이다.

그리드 페이징 처리를 위해서는 아래 예시와 같이 총 데이터 것수, 페이징당 행 건수, 조회 시작 행 번호가 필요하다.

맨 먼저 조회 대상 레코드 건수 정보를 조회하고, 그 이후에는 총 데이터 것수, 조회 시작 행 번호와 페이지당 행 건수 정보를 기준으로 조회한다.

툴 설치 디렉토리\template\HTML5\COMPONENT\GRID\grid_paging.jsp.txt → grid_paging.jsp 이름 변경후

해당 파일을 WAS 서버에 적용하고, 해당 서버 URL로 XTranMap의 TR_SELECT 트랜잭션에 대한 URL을 변경후 테스트 진행해야 한다.

템플릿 위치: /HTML5/COMPONENT/GRID/grid_paging

템플릿 파일

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
function btnClear_on_mouseup(objInst)
{
    DS_DATA.init();
 
    DS_COND.setdatabyname(0, "start_row_no", "0");
 
    pagBar.setmaxpagecount(1);
    pagBar.setcurpage(1);
 
    btnFirstSelect.setenable(true);
}
 
function btnFirstSelect_on_mouseup(objInst)
{
    screen.requestsubmit("TR_SELECT", true);
 
    btnFirstSelect.setenable(false);
}
 
function screen_on_submitcomplete(mapid, result, recv_userheader, recv_code, recv_msg)
{
    var row_count_per_page, max_row_count, max_page_no, mod_value;
 
    if (result != 1) {
        screen.alert("에러: " + recv_code + " - " + recv_msg);
        return;
    }
 
    // 시작 행 번호가 0인 경우
    if (DS_COND.getdatabyname(0, "start_row_no") == "0") {
        // 페이지당 행 갯수
        row_count_per_page = parseInt(DS_COND.getdatabyname(0, "row_count_per_page"), 10);
 
        // 최대 행 갯수
        max_row_count = parseInt(DS_COND.getdatabyname(0, "max_row_count"), 10);
 
        // 최대 페이지 수
        max_page_no = Math.ceil(max_row_count / row_count_per_page);
 
        // 페이지바의 최대 페이지 개수 설정
        pagBar.setmaxpagecount(max_page_no);
    }
}
 
// 페이지바 클릭 이벤트
function pagBar_on_pageclick(objInst, nClickPage)
{
    var row_count_per_page, max_row_count;
 
    row_count_per_page = parseInt(DS_COND.getdatabyname(0, "row_count_per_page"), 10);
    max_row_count = parseInt(DS_COND.getdatabyname(0, "max_row_count"), 10);
 
    // 조회 시작 행 번호 계산
    start_row_no = parseInt((nClickPage - 1), 10);
    if (start_row_no > 0) {
        start_row_no = start_row_no * row_count_per_page;
    }
 
    if (start_row_no >= max_row_count) {
        factory.consoleprint("end of massdata");
        return;
    }
 
    // linenumber_show 속성 사용시 라인넘버 offset 설정
    grdList.setlinenumberoffset(start_row_no);
 
    DS_COND.setdatabyname(0, "start_row_no", start_row_no);
    screen.requestsubmit("TR_SELECT", true);
}

  • guide/component/grid/grid_paging.txt
  • 마지막으로 수정됨: 2023/05/11 16:20
  • 저자 127.0.0.1