我在网格中使用编辑器时遇到此问题。
我在网上发现的几乎所有网格示例中都发现了这一点。
在具有诸如textfield之类的编辑器的网格中,尝试输入类似<SAMPLE>
的值。
当你离开焦点时,网格上会显示一个空白单元格。
但如果再次选择它进行编辑,则会保留实际输入的文本。
在此处试试:http://docs.sencha.com/extjs/4.0.7/#!/api/Ext.grid.plugin.CellEditing
我知道这与html编码/解码有关,可以在编辑事件中处理。 但我觉得这应该由网格内部处理。
请提出更好的解决方案吗?我需要在我的网格中显示这样的数据,所以这是一个真实的请求。
答案 0 :(得分:1)
通常,您不希望在输入中转义此类数据,而是在输出中执行此操作。这样,用户的输入在数据存储中保持不变。我认为这就是网格本身无法处理的原因。此外,如果您真的想要,则无法在网格列上使用HTML。
我个人在网格列上提供renderer,它会转义值:
renderer: function(value) {
return Ext.util.Format.htmlEncode(value);
}
默认情况下,您还可以对所有网格列执行此操作:
Ext.override(Ext.grid.column.Column, {
constructor: function(cfg) {
this.callOverridden(arguments);
if ('gridcolumn' === this.xtype && false === this.renderer) {
this.renderer = function(value) {
return Ext.util.Format.htmlEncode(value);
};
}
}
});
这会将这样的渲染器添加到配置中已经没有渲染器的所有列中(在这种情况下,此渲染器需要处理它)。
答案 1 :(得分:0)
每当我有一个格子值为<Enter New Value>
的网格时,我也发现了这一点。
事实证明,网格不会逃避单元格值,以防止自己对HTML标记感到困惑。
在这种想法中失去了一整天我有模特/商店问题。在这里阅读更多相关信息:
http://www.sencha.com/forum/showthread.php?232292-Escaping-HTML-characters-in-editable-grids
解决方法在这里:
http://non-stop-ext.blogspot.com/2013/02/gridpanel-with-special-characters-and.html