jQgrid: multiselect true - 在页面加载时默认选中每一行
jQgrid: multiselect true - make each row checked by default on page load
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
}
})
上面的代码就是这样做的
必填项是
将 jqGrid 与 multiselect:true
结合使用如何设置页面加载时默认选中的每一行? jQgrid 版本 - 4.6
如果您使用带有 datatype: "json"
且没有 loadonce: true
选项的 jqGrid 4.6,那么您就没有那么多的可能性。您必须枚举网格的所有 multiselect 复选框和那里的 select。所以你可以做
$("#cb_grid").click(); // "grid" is the grid id
例如,loadComplete
回调内部。如果您考虑所有情况,您可能会添加更多附加条件,因为 loadComplete
将在排序、分页等时调用。
更新: 您的代码在 rowattr
内有 $('.cbox').attr('checked', true);
行。以您不更改该行的复选框的方式,该复选框尚不存在。而不是在 header 列的复选框上设置 checked
属性 错误值 true
而不是 "checked"
。您应该删除该行以便能够使用我建议您的代码:
loadComplete: function () {
$("#cb_" + this.id).click();
},
rowattr: function (item, rd, rowid) {
//$('.cbox').attr('checked', true);
if (parseInt(rowid) === 10) {
return {"class": "ui-state-disabled ui-jqgrid-disablePointerEvents"};
}
},
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
}
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
}
})
上面的代码就是这样做的
必填项是
将 jqGrid 与 multiselect:true
结合使用如何设置页面加载时默认选中的每一行? jQgrid 版本 - 4.6
如果您使用带有 datatype: "json"
且没有 loadonce: true
选项的 jqGrid 4.6,那么您就没有那么多的可能性。您必须枚举网格的所有 multiselect 复选框和那里的 select。所以你可以做
$("#cb_grid").click(); // "grid" is the grid id
例如,loadComplete
回调内部。如果您考虑所有情况,您可能会添加更多附加条件,因为 loadComplete
将在排序、分页等时调用。
更新: 您的代码在 rowattr
内有 $('.cbox').attr('checked', true);
行。以您不更改该行的复选框的方式,该复选框尚不存在。而不是在 header 列的复选框上设置 checked
属性 错误值 true
而不是 "checked"
。您应该删除该行以便能够使用我建议您的代码:
loadComplete: function () {
$("#cb_" + this.id).click();
},
rowattr: function (item, rd, rowid) {
//$('.cbox').attr('checked', true);
if (parseInt(rowid) === 10) {
return {"class": "ui-state-disabled ui-jqgrid-disablePointerEvents"};
}
},
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
}