jqGrid hide column on view зависит от другого значения столбца - jquery


1

Я хочу показать столбец session на основе соответствующего значения ячейки строки type. Столбец session скрыт.

Чтобы скрыть столбец session, я использовал этот ниже фрагмент кода,

{ name: session, index: session, hidden:true, editrules:{edithidden:true} },

Итак, я просто хочу показать это значение столбца только в view. Если значение type ячейки равно Full, я хочу скрыть session в view. В противном случае я хочу показать, что значение столбца session в view.

Я попытался использовать этот ниже код,

onSelectRow: function (id) {
    var celValue = $(#statGrid).jqGrid(getCell, id, type);
    if (celValue === Full) $(#statGrid).jqGrid(getColProp, session).editrules.edithidden = false;
    if (celValue === Half) $(#statGrid).jqGrid(getColProp, session).editrules.edithidden = true;
}

Как только первое условие if получит успешное свойство edithidden, измененное на false. Итак, он скрывает session в форме вида. Но я не мог изменить это свойство на true, когда мое второе условие if получило успех.

Почему это произошло? Это правильный способ выполнить эту задачу? или Есть ли лучший способ сделать это?

  •  16
  •  1
  • 8 фев 2020 2020-02-08 08:05:13

1 ответ

1

Я бы рекомендовал вам использовать обратные вызовы beforeShowForm и afterclickPgButtons параметров View. Демонстрация демонстрирует это. Демонстрируем следующий код:

var showIdRow = function ($form) {
        var $this = $(this),
            rowid = $this.jqGrid("getGridParam", "selrow"),
            isClosed = $this.jqGrid("getCell", rowid, "closed");
        if (isClosed === "Yes") {
            $("#trv_id").show(); // "trv_" is the prefix, "id" is the column name
        }
    };

$("#list").jqGrid({
    ....
    colModel: [
        { name: "id", width: 65, hidden: true,  editrules: {edithidden: false} },
        ...
    ]
    ...
}).jqGrid("navGrid", "#pager", {view: true}, {}, {}, {}, {}, {
    recreateForm: true,
    afterclickPgButtons: showIdRow,
    beforeShowForm: showIdRow
});

Демонстрация показывает столбец "id" только в форме просмотра и только в том случае, если отмечен chechbox в столбце "Закрыть".

  • 8 фев 2020 2020-02-08 08:05:13