2

Ext JS は初めてで、Grid でさまざまなオプションを試しています。グリッドを作成し、それをパネル (Ext.panel.Panel) に追加しました。グリッドが空のデータで表示されています (プロキシを追加していません)。イベントが発生すると、JSON オブジェクトを作成し、loadDataグリッドでトリガーします。

以下は私のコードスニペットです。

Ext.define('AM.view.grid.Details', {
    extend: 'Ext.grid.Panel',
    alias: 'widget.details',
    title: 'Widget Data',

    store: {
        autolaod: true,
        fields: [{
            name: 'widgetid',
            mapping: 'widget_id',
            type: 'string'
        }, {
            name: 'widgetname',
            mapping: 'widget_name',
            type: 'string'
        }, {
            name: 'widgetnotes',
            mapping: 'widget_notes',
            type: 'String'
        }],
        reader: {
            type: 'json'
        }
    },
    width: 620,
    height: 400,

    forceFit: true,
    columns: [{
        header: 'id',
        dataIndex: 'widgetid',
        hidden: true
    }, {
        header: 'Name',
        dataIndex: 'widgetname',
        width: 150
    }, {
        header: 'Note',
        dataIndex: 'widgetnotes',
        width: 150
    }],

    renderTo: Ext.getBody()
});

別のウィジェットのコールバック関数である関数があります。イベントが発生すると、この関数 getTriggered.

function someFunction(grid) {
    var jsonData = formGridData();
    grid.store.loadData(jsonData);
}

グリッドが作成され、形成された文字列を JSON オブジェクトに変換して返す関数 formGridData() があると仮定してください。

したがって、アプリを実行すると、jsonData の長さが 5 の場合、5 つの空の行がグリッドに表示されます。

以下はJSONDataです

[{
    'widget_id':    'widget-1',
    'widget_name':  'gridpanel',
    'widget_notes': 'This is used to handle..'
}, {
    'widget_id':    'widget-2',
    'widget_name':  'combo',
    'widget_note':  'This is used to handle..'
}, {
    'widget_id':    'widget-3',
    'widget_name':  'panel',
    'widget_note':  'This is used to handle..'
}]

私がしていることに何か問題がありますか?

ありがとう、
パニ

4

2 に答える 2

2

すみません、気づかなかった

したがって、dataIndexが無効であるようです

http://jsfiddle.net/ssxenon01/WpZMU/8/

于 2012-05-18T08:52:53.707 に答える
2

グリッド上の dataIndexes が間違っています。

columns: [{
    header: 'id',
    dataIndex: 'widget_id', //was widgetid
    hidden: true
}, {
    header: 'Name',
    dataIndex: 'widget_name', //was widgetname
    width: 150
}, {
    header: 'Note',
    dataIndex: 'widget_notes',  //was widgetnotes
    width: 150
}]

何が起こっているかというと、適切な量の行が表示されていますが、例として持っているjsonはwidget_*とメモwidget*という名前であるため、それらは別のものであると考えられているため、適切にグリッドに表示できません

于 2012-05-18T10:07:43.433 に答える