2013-10-18 92 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

相關問題