728x90
반응형

jqGridmultiselect의 경우 아주 편하게 row 별로 checkbox 를 생성할 수 있지만 특정 로우에 대한 별도 처리는 쉽지 않다.
따라서 아래와 같은 별도 처리가 필요, 아래 처리 소스는 jqGridloading 완료된 후에 처리되는 부분이므로 loadComplete 부분에 넣어준다.

** rowdata중에 column1 이란 필드가 존재하며 그값이 1인 경우만 disabled처리한다는 가정하에 아래 코드 작성 **

=============================================== Example ================================================
loadComplete: function (jsondata) {

var idArry = $("#grid_id").jqGrid('getDataIDs'); //grid의 id 값을 배열로 가져옴
                           
 for(var i=0 ; i < idArry.length; i++){
   var ret =  $("#grid_id").getRowData(idArry[i]); // 해당 id의 row 데이터를 가져옴

   if("1" != ret.column1){ //해당 row의 특정 컬럼 값이 1이 아니면 multiselect checkbox disabled 처리
      //해당 row의 checkbox disabled 처리 "jqg_list_" 이 부분은 grid에서 자동 생성
      $("#jqg_list_"+idArry[i]).attr("disabled", true);
   }
 }  
},
onSelectAll: function(aRowids,status) { //disabled 처리된 checkbox 선택 안되도록 해주는 부분
 if (status) {
  var cbs = $("tr.jqgrow > td > input.cbox:disabled", $("#grid_id")[0]);
  cbs.removeAttr("checked");

  $("#grid_id")[0].p.selarrrow = $("#grid_id").find("tr.jqgrow:has(td > input.cbox:checked)").map(function() { return this.id; }).get();
  }
}

* jqGridid 값은 절대 중복되지 않는 필드로 세팅하는 것을 강조! 그렇지 않을 경우 오작동을 일으킬 가능성이 높다!

728x90
반응형
블로그 이미지

nineDeveloper

안녕하세요 현직 개발자 입니다 ~ 빠르게 변화하는 세상에 뒤쳐지지 않도록 우리모두 열심히 공부합시다 ~! 개발공부는 넘나 재미있는 것~!

,