как удалить значок действия удаления из строк подтвержденного заказа в jqGrid, если используется форматер clickableCheckbox - PullRequest
2 голосов
/ 05 февраля 2012

jqGrid содержит форматировщик действий и логические столбцы.Я пытался скрыть кнопку «Удалить действие» для опубликованных строк в jqGrid в loadComplete, используя

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?Олег 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 Ответ

2 голосов
/ 06 февраля 2012

Я думаю, что вы должны изменить перечисление с 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();
            }
        }
    }
}

В коде вы можете быть уверены, что вы прячете кнопку действия «Удалить» точно так жестрока, в которой столбец «Опубликовано» содержит флажок.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...