Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在jqGrid中切换单元格只读/可编辑_Javascript_Jquery_Jqgrid - Fatal编程技术网

Javascript 在jqGrid中切换单元格只读/可编辑

Javascript 在jqGrid中切换单元格只读/可编辑,javascript,jquery,jqgrid,Javascript,Jquery,Jqgrid,在这种情况下,我希望根据某些条件将单元格切换为只读/可编辑。它几乎可以工作,我可以使它只读,但不能再次编辑 grid.setColProp("a", { editoptions: { value: data.opPadrag, dataEvents: [{ type: 'change', fn: function (e) { var selr = grid.jqGrid('ge

在这种情况下,我希望根据某些条件将单元格切换为只读/可编辑。它几乎可以工作,我可以使它只读,但不能再次编辑

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', '', '');
            }
        }]
    }
});

有什么想法吗?

没有用于从单元格中删除类的内置函数,您可以像这样手动执行此操作:

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;             
            }
        }
    }
} }] } }); 
grid.setColProp('a',{editoptions:{value:data.opPadrag,dataEvents:[{type:'change',fn:function(e){
var selr=grid.jqGrid('getGridParam','selrow');
如果(某些条件){
jqGrid('setCell',selr','c','noteditablecell');
}否则{
var colModel=grid.jqGrid('getGridParam','colModel');
对于(var iCol=0;iCol
您可以更高效地执行此操作

使用jquery只需一行代码:

 $("#<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');