1

グラフを表示するための Ext.data.JsonStore を作成しています。C# コードで構築され、次の方法でページに挿入されたデータ ストア:

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

「。」を削除すると または「_」に置き換えると、コードが機能します。

4

1 に答える 1

0

Ext.data.JsonStore クラスは、次のようなプロキシ/リーダー構成で自動的に構成されます。

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

ただし、 JSON リーダーでuseSimpleAccessors 構成を有効にする必要があるため、これは説明したケースには十分ではありません。解決策は、代わりに通常の 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 }   
    ]
});
于 2012-08-03T14:24:41.817 に答える