2023~/js,jquery

slickgrid 기본 구성2(dataview)

yanii 2023. 5. 21. 00:24

슬릭그리드 생성 시, 

new Slick.Grid(그리드 생성위치, 데이터, 컬럼, 옵션);

 

 

데이터 자리에 dataview를 넣으면, 데이터를 정렬, 필터링, 페이징 등 다양한 이벤트 처리할 수 있다.

//dataView
$(function () {
    var dataView = new Slick.Data.DataView({ inlineFilters: true }); //dataview 생성

    grid = new Slick.Grid("#myGrid", dataView, columns, options); //slickgrid 생성

	//페이징 처리
    dataView.setPagingOptions({ pageSize: 10 }); //10개씩 페이징 처리
    var pager = new Slick.Controls.Pager(dataView, grid, $("#pager_notice")); //pager 생성

    dataView.onRowCountChanged.subscribe(function (e, args) {
        grid.updateRowCount();
        grid.render();
    });

    dataView.onRowsChanged.subscribe(function (e, args) {
        grid.invalidateRows(args.rows);
        grid.render();
    });

    GetNoticeList();

    //클릭이벤트
    grid.onActiveCellChanged.subscribe(function (e, args) {
        console.log(e, args);

        var item = grid.getDataItem(args.row);
        location.href = "/Notice/Details/" + item.SEQ;
    });
})

function GetNoticeList() {
    $.getJSON('/Notice/getNoticeList', function (data) {
        var View = grid.getData();

        View.beginUpdate();
        View.setItems(data, "SEQ"); // SEQ 기준으로 데이터 세팅
        // 여기에 view 변경 코드 작성
        View.endUpdate();
        View.reSort(); //정렬

        grid.invalidate(); //그리드 무효화
        grid.render(); //그리드 랜딩
    })
}