自定义功能:在应用了脏单元类时编辑只读Kendo UI Grid单元格

时间:2016-06-22 10:37:58

标签: javascript jquery kendo-ui kendo-grid

我有一个Kendo UI网格。如果该字段中有一些值,那么它应该显示为只读(不可编辑),否则它将是一个可编辑的单元格。 现在,我已经实现了以下给定的解决方案。

[http://jsfiddle.net/NX96g/175/][1]

工作正常。如果该字段没有值或'blank / Empty / Null',则该单元格是可编辑的。 但问题是如果用户在Empty / blank / Null单元格中输入一些值,则单元格会立即变为只读,用户无法对其进行编辑。 如何让用户在应用脏单元格类时编辑单元格?

1 个答案:

答案 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。

相关问题