jqGrid包含action formatter和boolean posted columns。 我尝试使用
隐藏loadComplete
中jqGrid中已发布行的删除操作按钮
var iCol = getColumnIndexByName($grid, 'Posted');
$('.ui-inline-del').each(function (index) {
var row = $grid[0].rows[index];
if ($(row.cells[iCol]).find(">div>input:checked").length > 0) {
$(this).hide();
}
});
但是这会在错误的行中随机隐藏删除操作按钮。 如何从已发布列值为true的行中删除“删除”按钮? Oleg clickableCheckbox格式化程序用于colmodel。以jsin格式从服务器读取数据。
[{"name":"_actions",
"formatter":"actions",
,"delbutton":true,
formatoptions: {"delOptions":{"url":"Delete"}}},
{"label":null,"name":"Posted",
"edittype":"checkbox",
"editoptions":{"value":"True:False","readonly":"readonly","disabled":"disabled"},
"formatter":"clickableCheckbox",
"editable":true,"width":0,
"classes":null,"hidden":true,
}]
删除按钮后添加新按钮
$("<div>", {
title: "Custom",
mouseover: function () {
$(this).addClass('ui-state-hover');
},
mouseout: function () {
$(this).removeClass('ui-state-hover');
},
click: function (e) {
alert("'Custom' button is clicked in the rowis=" +
$(e.target).closest("tr.jqgrow").attr("id") + " !");
}
}
).css({ "margin-left": "2px", float: "left" })
.addClass("ui-pg-div ui-inline-custom")
.append('<span class="ui-icon ui-icon-lock"></span>')
.appendTo($(row.cells[iActionsCol]).children("div"));
显示总是错误的图标
答案 0 :(得分:2)
我认为您应该将枚举从loadComplete
更改为以下内容:
loadComplete: function () {
var i, rows = this.rows, l = rows.length, row,
iClosedCol = getColumnIndexByName($grid, 'Posted'),
iActionsCol = getColumnIndexByName($grid, '_actions');
for (i = 0; i < l; i++) {
row = rows[i];
if ($(row).hasClass('jqgrow')) {
if ($(row.cells[iClosedCol]).find(">div>input:checked").length > 0) {
$(row.cells[iActionsCol]).find(">div>div.ui-inline-del").hide();
}
}
}
}
在代码中,您可以确保将“删除”操作按钮隐藏在“已发布”列包含已选中复选框的完全相同的行中。