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

时间:2012-02-04 23:43:42

标签: javascript jqgrid

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"));

显示总是错误的图标

enter image description here

1 个答案:

答案 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();
            }
        }
    }
}

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