jqGrid中多選


在jqGrid中設置multiselect: true可以實現全選的操作,但怎么設置被選中的checkbox里面的值呢,做法如下:
jQuery("#listTable").jqGrid({
   url: 'queryList.do',
   datatype: 'json',
   colNames: ['','編號','姓名'],
   colModel: [
               { 
                 name: 'MY_ID',
                 index: 'MY_ID',
                 sortable: false,
                 width: '0%',
                 hidden:true
               },
               {
                 name: 'MY_NO',
                 index:'MY_NO',
                 sortable: false,
                 align:'center',
                 width:'10%'
               },
              {
                 name: 'NAME',
                 index:'NAME',
                 sortable: false,
                 align:'center',
                 width:'10%'
              }
            ],
            page: 1,
            rowNum: 10,
            rowList: [10, 20, 30],
            pager: '#listPage',
            multiselecttrue,
            sortname: 'MY_NO',
            viewrecords: true,
            sortorder: "desc",
            jsonReader: {
                repeatitems: false
            },
            width: "100%",
            height: '100%',
            gridComplete: function() {
                var rowIds = jQuery("#listTable").jqGrid('getDataIDs');
                for(var k=0; k<rowIds.length; k++) {
                   var curRowData = jQuery("#listTable").jqGrid('getRowData', rowIds[k]);
                   var curChk = $("#"+rowIds[k]+"").find(":checkbox");
                   curChk.attr('name', 'checkboxname');   //給每一個checkbox賦名字
                   curChk.attr('value', curRowData['MY_ID']);   //給checkbox賦值
                   curChk.attr('title', curRowData['NAME'] );   //給checkbox賦予額外的屬性值

                   // curChk.attr(' checked', ' true ');   //設置所有checkbox被選中
                }
 
                 //下面的代碼順序不能變(這是頁面上所有行被 選中[所有行被黃色])
                //$("#cb_ listTable").attr("checked", true);
                //$("#cb_ listTable").click();    //input框
                //$("#jqgh_ listTable_cb").click();    //div標簽
                //$("# listTable_cb").click();    //th標簽
            }
});

加載完列表后獲取被選中的checkbox的值及其屬性值的做法如下:
var checkedVals = new Array();
var checkedTitles = new Array();
$(" :checkbox[name= checkboxname][ checked]"). each(function(){
      checkedVals.push($(this).val());
      checkedTitles.push($(this). attr(" title"));
});
for(var p=0; p<checkedVals.length; p++){
    alert(checkedVals[p]);
    alert(checkedTitles[p]);
}

--------------------------------------------------------------------------------------------------
讓查詢列表中按指定條件被默認選中或灰掉checkbox的做法如下:
jQuery("#listTable").jqGrid({
   url: 'queryList.do',
   datatype: 'json',
   colNames: ['','編號','姓名'],
   colModel: [
               { 
                 name: 'MY_ID',
                 index: 'MY_ID',
                 sortable: false,
                 width: '0%',
                 hidden:true
               },
               {
                 name: 'MY_NO',
                 index:'MY_NO',
                 sortable: false,
                 align:'center',
                 width:'10%'
               },
              {
                 name: 'NAME',
                 index:'NAME',
                 sortable: false,
                 align:'center',
                 width:'10%'
              }
            ],
            page: 1,
            rowNum: 10,
            rowList: [10, 20, 30],
            pager: '#listPage',
             multiselecttrue,
             multiboxonlytrue,
            sortname: 'MY_NO',
            viewrecords: true,
            sortorder: "desc",
            jsonReader: {
                repeatitems: false
            },
            width: "100%",
            height: '100%',
            gridComplete: function() {
                var rowIds = jQuery("#listTable").jqGrid(' getDataIDs');
                for(var k=0; k<rowIds.length; k++) {
                   var curRowData = jQuery("#listTable").jqGrid(' getRowData', rowIds[k]);
                   if(curRowData.MY_NO == '123456'){
                        $("#listTable"). find("input[id=' jqg_" + rowIds[k] +
                                                                      "']").val(curRowData.MY_ID);
                        if(curRowData.NAME=='shihuan'){
                            $("#listTable"). find("input[id=' jqg_" + rowIds[k] +
                                                                      "']").attr("checked", true);
                        }
                    }else{
                        $("#listTable"). find("input[id=' jqg_" + rowIds[k] +
                                                                      "']").val(curRowData.MY_ID);
                        $("#listTable"). find("input[id=' jqg_" + rowIds[k] + "']").attr("checked",
                                                                                            true);
                        $("#listTable"). find("input[id=' jqg_" + rowIds[k] + "']").attr("disabled",
                                                                                            true);
                    }
                }
            }
            onSelectAll:function(rowid, status) { //rowid 數組
                var ids = jQuery("#listTable").jqGrid(' getDataIDs');
                for (var i=0; i<ids.length; i++) {
                    var  cl = ids[i];
                    var curRowData = jQuery("#listTable").jqGrid(' getRowData',  cl);
                    var ckt = $("#listTable"). find("input[id=' jqg_" +  cl + "']").attr("disabled");
                    if(ckt){
                        $("#listTable"). find("input[id=' jqg_" +  cl + "']").attr("checked", true);
                    }
                }
            },
            beforeSelectRow:function(rowid, e){
                //alert(rowid);   //rowid的值是checkbox的value值
                return false;
            }
});
--------------------------------------------------------------------------------------------------
jqGrid被重新載入的做法如下:
function gridReload() {
    jQuery("#listTable").jqGrid(' setGridParam', {
                 //url:'../../../com/shihuan/search.do',
                 //postData: transferFormElementsToObject('theForm'),
                postData: {"message":msval},
                page:1
            }).trigger(" reloadGrid");
}
 
摘自 http://blog.sina.com.cn/s/blog_4f925fc30102e27f.html。方便以后自己找資料


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM