2012-08-02 193 views
1

我正在創建一個用於顯示圖表的Ext.data.JsonStore。它建立在C#代碼behing並通過插入到頁面中的數據存儲區:帶特殊字符的Ext.data.JsonStore

Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "Data", dataScript, true); 

這是所得到的JavaScript代碼:

var store = Ext.create('Ext.data.JsonStore', { 
    fields: ["name", "ASAP", "Phase 2", "test", "Version 2.0 SR 1"], 

    data: [ 
{ "name": "ASAP", "ASAP": 30, "Phase 2": 10, "test": 5, "Version 2.0 SR 1": 10 } , 
{ "name": "Phase 2", "ASAP": 12, "Phase 2": 5, "test": 15, "Version 2.0 SR 1": 5 } 
    ] 
}); 

的問題是,在字段「2.0版SR 1」有一個'。'這是導致腳本錯誤。

它返回的錯誤是:

SCRIPT1004: Expected ';' 
ext-all.js, line 18 character 5081 

我假設我需要以某種方式進行編碼,但我已經試過無濟於事修改字段設置爲:

Version 2\\.0 SR 1 
Version 2\.0 SR 1 
Version 2\u002E0 SR 1 

如果我刪除'。'或者用'_'代替它。

+0

您使用的是什麼版本的ExtJS? 4.0.7? 4.1.0? – hopper 2012-08-02 19:15:28

+0

使用版本4.1.0 – user979700 2012-08-02 23:26:35

回答

0

的Ext.data.JsonStore的實踐例子類自動配置與代理/讀寫器配置是這樣的:

proxy: { 
    type : 'ajax', 
    reader: 'json', 
    writer: 'json' 
} 

然而,這不足以爲你所描述的情況,因爲你需要啓用JSON閱讀器上的useSimpleAccessors config。然後,解決方案是使用常規的Ext.data.Store來代替,並明確指定代理和讀取器:

var store = Ext.create('Ext.data.Store', { 
    proxy: { 
     type: 'memory', 
     reader: { 
      type: 'json', 
      useSimpleAccessors: true 
     } 
    }, 

    fields: ["name", "ASAP", "Phase 2", "test", "Version 2.0 SR 1"], 

    data: [ 
     { "name": "ASAP", "ASAP": 30, "Phase 2": 10, "test": 5, "Version 2.0 SR 1": 10 } , 
     { "name": "Phase 2", "ASAP": 12, "Phase 2": 5, "test": 15, "Version 2.0 SR 1": 5 } 
    ] 
});