일상 기록 창고

jqGrid 에서 subgrid 사용 시 펼침메뉴가 나오지 않도록.. 본문

프로그래밍/jQuery

jqGrid 에서 subgrid 사용 시 펼침메뉴가 나오지 않도록..

Crazy_Kong 2014. 5. 26. 09:24

1. subGrid 기본 사용

$('#grid').jqGrid({
    url : '', 
    ..생략..
    loadComplete : function(){
    },
    subGrid : true,
    subGridRowExpanded : function(subgrid_id, row_id){
         ...생략..
    }
});



2. 서브 그리드의 안에서 헤더가 나오지 않도록 하기 위한 추가 코드

subGridRowExpanded : function(subgrid_id, row_id){
    $('#' + subgrid_id).find('.ui-jqgrid-hdiv').hide();
}


3. 서브 그리드의 내용이 없을 경우 펼침 아이콘이 나오지 않도록 다음과 같이 추가

1. subgrid 안의 loadComplete 가 아니다.
loadComplete : function(){
    $("td.sgcollapsed:eq(0)",$('#list')[0]).unbind('click').html('');     // <--- 첫번째 row의 아이콘을 숨긴다.
}

쿼리에서 카운트 한 값을 로우마다 체크해서 위와 같은 코드를 넣어 주면 펼침 아이콘이 사라진다.

클릭 이벤트를 해제 했으니 반대의 경우도 가능하다.

$("td.sgcollapsed:eq(0)",$('#list')[0]).bind('click', function(){ alert('펼침 아이콘이 클릭'); });

덧) 클릭 시 마다 실행이 될 터이니 펼쳐졌는지의 여부 확인이 필요하다.