Javascript 如果使用clickableCheckbox格式化程序,如何从jqGrid中的已确认订单行中删除删除操作图标

Javascript 如果使用clickableCheckbox格式化程序,如何从jqGrid中的已确认订单行中删除删除操作图标,javascript,jqgrid,Javascript,Jqgrid,jqGrid包含动作格式化程序和布尔发布列。 我试图在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

jqGrid包含动作格式化程序和布尔发布列。 我试图在
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的行中删除“删除”按钮? colmodel中使用了Oleg格式化程序。数据以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"));
$(“”{
标题:“海关”,
鼠标悬停:函数(){
$(this.addClass('ui-state-hover');
},
mouseout:函数(){
$(this.removeClass('ui-state-hover');
},
点击:功能(e){
警报(“‘自定义’按钮在行中单击=”+
$(e.target).closest(“tr.jqgrow”).attr(“id”)+“!”;
}
}
).css({“左边距”:“2px”,float:“left”})
.addClass(“ui pg div ui内联自定义”)
.append(“”)
.appendTo($(row.cells[iActionsCol])子项(“div”);
显示总是错误的图标


我认为您应该将枚举从
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();
            }
        }
    }
}
loadComplete:函数(){
变量i,行=this.rows,l=rows.length,row,
iClosedCol=getColumnIndexByName($grid,'Posted'),
iActionsCol=getColumnIndexByName($grid,'.\u actions');
对于(i=0;idiv>input:checked”).length>0){
$(row.cells[iActionsCol]).find(“>div>div.ui-inline-del”).hide();
}
}
}
}

在代码中,您可以确保将“删除”操作按钮隐藏在“已发布”列包含复选框的同一行中。

非常感谢。成功了。如何在未过帐行的“删除”按钮和过帐行的“未过帐”按钮上添加附加过帐按钮?还是为它们添加单独的列更好?编辑操作始终不可见。还是用Post按钮代替编辑操作按钮更好?@Andrus:不客气!在中,我描述了如何添加自定义按钮,该按钮可以像标准的“操作”按钮一样使用。我想这正是你需要的。谢谢。删除图标后添加第二个图标总是显示错误的图标,如何显示正确的图标?如何在删除图标之前添加新图标?我更新了问题。@安德鲁斯:问题是你使用了更新版本的jqGrid,如-4.1.2,它有悬停错误。您应该更改与jqGrid的当前代码相对应的代码。您添加的代码似乎与原始问题相去甚远。stackoverflow的主要目标是与其他访问者共享问题和答案。所以最好把问题分成清晰的小部分。它有助于其他人发现和使用这些信息。