2

グリッドのストアに新しいデータを定期的に追加する必要があります。ストアは次のコードで定義されます。

this.reader = new Ext.data.JsonReader({
        idProperty: 'id',
        fields: this.lesFields
    });
this.ds = new Ext.data.GroupingStore({
        reader: this.reader,
        data: this.leData,
        sortInfo: {field: 'dendisc', direction: 'ASC'},
        groupField: 'categorie'
    });

新しいデータを追加する必要があるときは、 を使用してこれを行いthis.getStore().loadData(this.leData)ます。技術的には、データはグリッドのストアに表示されますが、ディスプレイにはゼロ (intフィールド内) と空白文字列 (フィールド内) しか表示されませんstring。Chrome のコンソールでいくつかの調査を行ったところ、dataプロパティとjsonプロパティが同じではないことがわかりましたthis.getStore().data。にjsonは有効なデータを含む配列がありますが、dataゼロと空白の文字列しかありません。

何か不足していますか?handleAs:'json'財産は状況を救うでしょうか?

4

2 に答える 2

3

JsonReader では、ルートを定義する必要があります。root は、レコードを含むサブプロパティを指します。

ここでは、外部ドキュメントから取得したサンプル:

var myReader = new Ext.data.JsonReader({
    idProperty: 'id'
    root: 'rows',
    totalProperty: 'totalRows',
    fields: [
        {name: 'id' },
        {name: 'name' }
    ]
});

および読み取るサンプルデータ:

{
    success: true,
    totalRows: 100,
    rows: [  // root
        { id: 1, name: 'Alf' },
        { id: 2, name: 'Ben' },
        { id: 3, name: 'Cod' },
        ...
    ]
}
于 2011-05-14T21:48:37.563 に答える
1

私はGroupingStoresにそれほど慣れていませんが、Readerはそのようなオブジェクトのようなjsonオブジェクト{ Id:0, Name: 'MyName' }またはそのようなオブジェクトの配列を期待し、登録されたフィールド名とそれらを照合しようとすると思います。しかし、私はあなたの配列に何があるのか​​わからないので、これは単なる推測です

于 2011-05-13T12:32:34.417 に答える