SMART datagrid v1.4 > Examples
SMART datagrid 페이징에 대한 페이징 개요와 기본 예제를 먼저 확인한다.
각 페이지에 표시할 모든 데이터가 데이터셋에 미리 로드될 필요가 없다. 예상되는 전체 페이지 개수를 지정하고 각 페이지 이동 전이나 이동 후 이벤트에서 필요한 데이터를 로드해서 표시할 수 있다.
그리드 데이터셋은 기본적으로 가상 행을 지원하고 있다. 즉, setRowCount를 호출해서 행 수를 지정할 때 기본값을 지정하지 않으면, 행 수만큼 자리만 준비하고 실제 데이터행을 생성하지 않는다. 이 후 updateRow 등으로 데이터행의 값을 실제로 저장할 수 있다. 특정한 행이 데이터가 로드된 상태인 지는 hasData 메소드로 알 수 있다.
이 rowCount 특성을 이용하면 페이지 변경 시점에 필요한 데이터를 로드하는 방식을 쉽게 구현할 수 있다. 이런 방식을 구현하기 위해서는 먼저 전체 페이지 개수를 지정해야 한다.
// 데이터행 개수 지정
dataset.setRowCount(53);
// 페이지 크기 10행, 전체 6 페이지
grid.setPaging(true, 10, 6);
그리고, 페이지 위치가 변경될 때, 표시할 데이터가 로드되지 않은 상태라면 데이터를 가져온다.
grid.onPageIndexChanged = function (grid, oldPage, newPage) {
var start = newPage * grid.pageSize();
if (!dataset.hasData(start)) {
loadData(start);
}
};
위 예제처럼 rowCount를 미리 지정하기 전에 페이지 변경 시 필요한 만큼 증가를 시켜가면서 진행해도 된다.