0

条件に応じて、セルを読み取り専用/編集可能に切り替えたい場合があります。ほぼ機能します。読み取り専用にすることはできますが、再度編集することはできません。

grid.setColProp("a", {
    editoptions: {
        value: data.opPadrag,
        dataEvents: [{
            type: 'change',
            fn: function (e) {
                var selr = grid.jqGrid('getGridParam', 'selrow');
                if (someCondition) grid.jqGrid('setCell', selr, 'c', '', 'not-editable-cell');
                else
                // Problem here - how to make it editable. I've tried a few ways, none worked
                // grid.jqGrid('setCell', selr, 'c', '', 'editable-cell');
                // grid.jqGrid('setCell', selr, 'c', '', 'editable');
                // grid.jqGrid('setCell', selr, 'c', '', '');
            }
        }]
    }
});

何か案は?

4

2 に答える 2

1

セルからクラスを削除する組み込み関数はありません。次のように手動で行うことができます。

grid.setColProp('a', { editoptions: { value: data.opPadrag, dataEvents: [{ type: 'change', fn: function (e) {
    var selr = grid.jqGrid('getGridParam', 'selrow');
    if (someCondition) {
        grid.jqGrid('setCell', selr, 'c', '', 'not-editable-cell');
    } else {
        var colModel = grid.jqGrid('getGridParam', 'colModel');
        for (var iCol = 0; iCol < colModel.length; iCol++) {
            if (colModel[iCol].name === 'c') {
                var row = grid[0].rows.namedItem(selr);
                var cell = row.cells[iCol];
                $(cell).removeClass('not-editable-cell');
                break;             
            }
        }
    }
} }] } }); 
于 2012-04-10T13:32:39.637 に答える
0

このアクションをより効率的に実行できます。

jquery 1 行のコードを使用する:

 $("#<GridId> tr[id='<RowId>'] td[aria-describedby='<GridId>_<ColumnName>']").removeClass('not-editable-cell');

例 :

$("#maingrid tr[id='1'] td[aria-describedby='maingrid_column1']").removeClass('not-editable-cell');

ありがとう、

ガブリエル

于 2012-10-03T16:44:23.227 に答える