jQuery("#grid").jqGrid({
url:call_url,
datatype: "json",
height: 'auto',
rowNum: 20,
rowList: [20,30,40],
colNames:[<?php echo $col;?>],
colModel:[
{name:'USER_ID',index:'USER_ID', align:'center',search:false,hidden:true,key:true},
{name:'PROJECT_NAME',index:'PROJECT_NAME', align:'center',search:false,hidden: true},
{name:'EMP_NAME',index:'EMP_NAME', sortable:true,summaryType:'count',summaryTpl : 'Total ({0}) Resource Hours' },
<?php for($i=1;$i<=count($cal_arr);$i++) {?>
{name:'<?php echo $i;?>',index:'<?php echo $i;?>',search:false,align:"center",sortable:false ,width:80 },
<?php } ?>
],
pager: "#page",
multiselect: true,
shrinkToFit :true,
autowidth: true,
viewrecords: true,
grouping: true,
groupingView : { groupField : ['PROJECT_NAME'],
groupColumnShow : [false],
groupText : ['<b>{0}</b>'],
groupCollapse : false,
groupOrder: ['asc'],
groupSummary : [true],
showSummaryOnHide: true,
groupDataSorted : true },
sortname: 'EMP_NAME',
caption: "Programatically block selection of some grid row',
gridComplete: function () {
var recs = $("#grid").getGridParam("records");
$( ".mycontent" ).remove();
if (recs == 0 || recs == null) {
$('#grid').after("<div class='mycontent' style='color:red;text-align:center'>No Record Found</div>");
$("#btn_submit").hide();
}
},
loadComplete: function () {
$("#cb_grid").click();
},
rowattr: function (item) {
if (parseInt(item.ID) == 1) {
return {"class": "ui-state-disabled ui-jqgrid-disablePointerEvents"};
}
},
//prevent selection of disabled rows
beforeSelectRow: function (rowid, e) {
if ($(e.target).closest("tr.jqgrow").hasClass("ui-state-disabled")) {
return false; // not allow select the row
}
return true; // allow select the row
}
})
Above code does this
Required is
Using jqGrid with multiselect:true
how to set each row checked by default on page load ? jQgrid Version - 4.6
If you use jqGrid 4.6 with
datatype: "json"
and noloadonce: true
option then you have not so much possibilities. You have to enumerate all multiselect checkboxes of the grid and select there. So you can doinside of
loadComplete
callback for example. If you would think about all cases you will probably add more additional criteria, becauseloadComplete
will be called on sorting, paging and so on.UPDATED: You code have
$('.cbox').attr('checked', true);
line inside ofrowattr
. In the way you don't change the checkbox of the row, which is not yet exist. Instead of that you setchecked
attribute with wrong valuetrue
instead of"checked"
on the checkbox of the column header. You should remove the line to be able to use the code which I suggested you:see the demo: http://jsfiddle.net/OlegKi/aagxejj5/4/