将jqgrid与multiSelect="true"
选项一起使用。我正在禁用行并根据下面提到的某些标志状态阻止其选择
根据IS_FLAGGEd = 1
//disable row which are flagged
rowattr: function (item) {
if (parseInt(item.IS_FLAGGED) == 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
}
要禁用标题复选框,在代码下方实现,但即使禁用了一行,它也会禁用标题复选框。
//disable header checkbox only if all rows are disabled
loadComplete: function() {
var grid = $("#grid");
var ids = grid.jqGrid('getDataIDs');
for(var i=0;i < ids.length;i++){
var rowId = ids[i];
var rowData = jQuery('#grid').jqGrid ('getRowData', rowId);
console.log(rowData.SUBMIT_TO_ACC);
if(rowData.FLAG_STATUS == 1){
$('tr.ui-jqgrid-labels').addClass('ui-state-disabled ui-jqgrid-disablePointerEvents');
}
}
}
如果禁用(multiselect = true)
行,ALL
行,我该如何禁用标题复选框hasClass(ui-state-disabled)
?
jQgrid版本= 4.6
jQuery版本= 1.7.2
答案 0 :(得分:0)
我建议您保存jqGrid自定义选项中是否禁用所有行的信息。相应的代码可能类似于使用
的演示http://jsfiddle.net/OlegKi/aagxejj5/44/rowattr: function (item, rd, rowid) {
var p = $(this).jqGrid("getGridParam");
if (rd.closed === "true" || rd.closed === true) {
return {"class": "ui-state-disabled ui-jqgrid-disablePointerEvents"};
} else {
p.isSomeEnabled = true;
}
},
beforeRequest: function () {
var p = $(this).jqGrid("getGridParam");
p.isSomeEnabled = false; // reset for the filling
},
loadComplete: function () {
var p = $(this).jqGrid("getGridParam"), $selAll = $("#cb_" + this.id);
if (p.isSomeEnabled) {
$selAll.removeClass("ui-state-disabled ui-jqgrid-disablePointerEvents");
$selAll.click(); // select all
// one need to trigger the click twice only because of bugs
// in case of usage old jQuery version
$selAll.click(); // select all
$selAll.prop("checked", true);
} else {
$selAll.addClass("ui-state-disabled ui-jqgrid-disablePointerEvents");
$selAll.prop("checked", false);
}
}
我在第二页上放置了一个,因此可以切换页面并查看上述代码是否正常工作。
答案 1 :(得分:0)
标题中的复选框具有从“cb_”前缀和网格ID组合的id。所以你可以用
隐藏元素var myGrid = $(“#list”); $( “#CB _” + myGrid [0] .ID).hide();