Javascript 如何在JQGrid的行编辑中禁用某些单元格的编辑?

Javascript 如何在JQGrid的行编辑中禁用某些单元格的编辑?,javascript,jqgrid,Javascript,Jqgrid,当我单击网格中的任何一行时,所有可编辑列都将变为可编辑列 我希望每行上的某些列可以分别编辑 Column 1, Column 2, Column 3 ROW Number 1 - editable, non-editable, non-editable ROW Number 2 - non-editable, editable, non-editable ROW Number 3 - editab

当我单击网格中的任何一行时,所有可编辑列都将变为可编辑列

我希望每行上的某些列可以分别编辑

                 Column 1,   Column 2,     Column 3             
ROW Number 1 - editable,     non-editable, non-editable  
ROW Number 2 - non-editable, editable,     non-editable    
ROW Number 3 - editable,     non-editable, non-editable  
提前感谢

如果您使用并希望动态决定行中哪些单元格将可编辑(例如,基于单元格的内容),您可以按照我描述的方式执行此操作。您也可以使用其他方法执行此操作:

$(this).jqGrid('setColProp', 'YouColumnName', {editable:false});
所以在调用方法之前,您应该将
editable
设置为
false
true
。你可以用这种方式实现你想要的任何逻辑


更新:允许将
可编辑的
定义为回调函数。看见它允许在某些行中使列可编辑,在其他行中保持不可编辑。

我有一个类似的要求,只是扩展了他在回答中已经提到的内容:

//get colModel properties
var cm = jQuery("#grid").jqGrid('getColProp','myColumn');

//some condition to enable or disable editing
cm.editable = false;

//always call editRow after changing editable property
jQuery('#grid').jqGrid('editRow', rowId, {});

//set default editable option
cm.editable = true;

干杯:)

好的,这样我可以检查一行中单元格的值。然后使其可编辑:false。因此,对于选定的行,它将变为不可编辑。右侧。@stacktrace:
editRow
方法测试此时哪些列是可编辑的。它将创建
控件,以便仅对可编辑列进行单元格编辑。因此,如果将某个临时列的column属性设置为
editable:false,则不会创建用于编辑的控件,并且相应的单元格将不可编辑。调用
editRow
方法后,您可以直接将设置更改回所需的任何值。这样你就能完全解决你的问题了。嗨,奥列格,你能帮我解决这个问题吗?感谢您没有调用
jQuery('#grid').jqGrid('editRow',rowId,{})在最后,在您设置
cm.editable=true
之后,因为这将再次将单元格设置为可编辑。在这里,您试图做的是使特定单元格有条件地不可编辑,但其余列保持可编辑状态<代码>厘米。可编辑=真
用于在再次调用
editRow
时将col模型设置回可编辑状态。