SMART datagrid v1.4 > Examples

Back  Forward

Paging - Lazy Data Load  Example

SMART datagrid 페이징에 대한 페이징 개요기본 예제를 먼저 확인한다. 

각 페이지에 표시할 모든 데이터가 데이터셋에 미리 로드될 필요가 없다. 예상되는 전체 페이지 개수를 지정하고 각 페이지 이동 전이나 이동 후 이벤트에서 필요한 데이터를 로드해서 표시할 수 있다. 

그리드 데이터셋은 기본적으로 가상 행을 지원하고 있다. 즉, setRowCount를 호출해서 행 수를 지정할 때 기본값을 지정하지 않으면, 행 수만큼 자리만 준비하고 실제 데이터행을 생성하지 않는다. 이 후 updateRow 등으로 데이터행의 값을 실제로 저장할 수 있다. 특정한 행이 데이터가 로드된 상태인 지는 hasData 메소드로 알 수 있다. 

이 rowCount 특성을 이용하면 페이지 변경 시점에 필요한 데이터를 로드하는 방식을 쉽게 구현할 수 있다. 이런 방식을 구현하기 위해서는 먼저 전체 페이지 개수를 지정해야 한다. 

Code -1
    // 데이터행 개수 지정
    dataset.setRowCount(53);
    
    // 페이지 크기 10행, 전체 6 페이지
    grid.setPaging(true, 10, 6);

그리고, 페이지 위치가 변경될 때, 표시할 데이터가 로드되지 않은 상태라면 데이터를 가져온다. 

Code -2
    grid.onPageIndexChanged = function (grid, oldPage, newPage) {
        var start = newPage * grid.pageSize();
        if (!dataset.hasData(start)) {
            loadData(start);
        }
    };
Grid - 1

위 예제처럼 rowCount를 미리 지정하기 전에 페이지 변경 시 필요한 만큼 증가를 시켜가면서 진행해도 된다. 

소스보기 JSP 

See Also
페이징 개요
GridView.setPaging
GridView.pageIndex
GridView.pageCount
GridView.onPaged
GridView.onPageCountChanged
GridView.onPageIndexChanging
GridView.onPageIndexChanged
Examples
기본 페이징
페이지 행 위치 지정
페이지에 특정 행들 표시