2013-10-18 52 views
1

我在使用网格中的编辑器时遇到此问题。 我在网上找到的几乎所有网格示例中都可以找到它。 在具有诸如textfield等编辑器的网格中,尝试输入一个值,如<SAMPLE>。 当你离开焦点时,网格上会显示一个空白单元格。 但是,如果再次选择它进行编辑,实际输入的文本将被保留。ExtJS网格:单元格编辑:如果输入的值是空白单元格<SAMPLE>

尝试在这里:http://docs.sencha.com/extjs/4.0.7/#!/api/Ext.grid.plugin.CellEditing

我知道这已与HTML编码/解码做,可以在编辑的事件进行处理。 但我觉得这应该是由电网内部处理。

请建议一个更好的解决方案,如果有的话?我需要在网格中显示这些数据,所以这是一个真正的要求。

回答

0

通常情况下,您不希望在输入时转义此类数据,而是在输出上执行此操作。这样用户的输入在数据存储中保持不变。我认为这就是为什么电网本身不处理这个问题的原因。另外,如果您真的想要在网格列上使用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); 
      }; 
     } 
    } 
}); 

这将增加这样的渲染器可用于所有未在配置中提供渲染器的列(在这种情况下,此渲染器需要照顾它)。

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

相关问题