Translate

[jqGrid] clearGridData 메소드 설명







환경: jqGrid v4.7.1 이하 (무료버전)



datatype: 'local' 인 경우에 특히 많이 사용이 되는 clearGridData 메소드에 대해서 알아보겠다.
1004lucifer
https://github.com/tonytomov/jqGrid/blob/v4.7.1/js/jquery.jqGrid.js#L3855


clearGridData: function(clearfooter) {
  return this.each(function () {
    var $t = this;
    if (!$t.grid) { return; }
    if (typeof clearfooter !== 'boolean') { clearfooter = false; }
    if ($t.p.deepempty) { $("#" + $.jgrid.jqID($t.p.id) + " tbody:first tr:gt(0)").remove(); }
    else {
      // emtry tr을 가져옴 (첫번째 tr은 항상 비어있는 row)
      var trf = $("#" + $.jgrid.jqID($t.p.id) + " tbody:first tr:first")[0];
      // 그리드의 tbody에 데이터를 모두 버리고 empty tr 만 넣는다.
      $("#" + $.jgrid.jqID($t.p.id) + " tbody:first").empty().append(trf);
    }
    // footerrow가 사용중이며 clearfooter 옵션이 true인경우 footerrow 영역의 데이터를 비운다.
    if ($t.p.footerrow && clearfooter) { $(".ui-jqgrid-ftable td", $t.grid.sDiv).html(" "); }
    $t.p.selrow = null; $t.p.selarrrow = []; $t.p.savedRow = [];
    $t.p.records = 0; $t.p.page = 1; $t.p.lastpage = 0; $t.p.reccount = 0;
    $t.p.data = []; $t.p._index = {};
    // Pager 번호를 업데이트 한다.
    $t.updatepager(true, false);
  });
}


아래 개발자도구에서 본 모습과 같이 그리드의 첫번째 tr 은 jqGrid 에서 사용하는 empty tr 이 있는것을 확인할 수 있었다.




위의 로직처럼 clearGridData 메소드가 하는 역할은 두가지가 있다.

1. 그리드의 데이터(tr) 삭제
2. Pager(페이지번호) 업데이트







댓글