我有一个Kendo UI网格。如果该字段中有一些值,那么它应该显示为只读(不可编辑),否则它将是一个可编辑的单元格。 现在,我已经实现了以下给定的解决方案。
[http://jsfiddle.net/NX96g/175/][1]
工作正常。如果该字段没有值或'blank / Empty / Null',则该单元格是可编辑的。 但问题是如果用户在Empty / blank / Null单元格中输入一些值,则单元格会立即变为只读,用户无法对其进行编辑。 如何让用户在应用脏单元格类时编辑单元格?
答案 0 :(得分:0)
不确定这是一个真正的答案,但......
您的DataSource具有autoSync:true。如果你不将其设置为true,那么kendo将添加一个" k-dirty-cell"持久化的cell / td类,用于追加添加红色标记的k-dirty span。
http://dojo.telerik.com/@Stephen/uvaGI
这显示了您想要使用autoSync的内容:false以及额外检查" k-dirty-cell"类:
if (!isEditable(fieldName, e.model) && !e.container.hasClass("k-dirty-cell")) {
当autoSync为true时," k-dirty-cell" class没有被使用,然后没有什么可以查找,就好像更改总是立即保存,然后从技术上讲,单元格永远不会变脏。
如果你必须拥有autoSync:true ...我还没有能够解决任何问题。我已经在添加了对model.dirty的检查,但是模型上的autoSync第二次在编辑器中变脏,因为autoSync会立即保存更改。
您可以在此处使用该技术的变体:
http://www.telerik.com/support/code-library/preserve-the-dirty-indicator-in-incell-editing-and-client-operations
在模型中手动跟踪脏单元格并将该检查集成到isEditable()中。
但是,如果你真的不需要,我可能会关闭autoSync。