0

次の形式でデータを指定します。

var grid_data = [ {Hello: 'World'}, {Jesus:'Navas'} ]

次のようなグリッドを描画したいと思います。

ここに画像の説明を入力してください

グリッドは2行で表示されていますが、データがないため、次のコードで問題を見つけることができません。

    var grid_store = Ext.create('Ext.data.Store', {
    fields: [
       {name: 'Property'},
       {name: 'Value'}
    ],
    data: grid_data
});

    // create the Grid
var grid_view = Ext.create('Ext.grid.Panel', {
    store: grid_store,
    renderTo: 'info_panel',
    stateful: true,
    stateId: 'stateGrid',
    columns: [
        {
            text     : 'Property',
            width    : 100,
            sortable : true,
            dataIndex: 'Property'
        },
        {
            text     : 'Value',
            width    : 80,
            sortable : false,
            dataIndex: 'Value'
        }
          ],
    height: 350,
    width: 600,
    title: 'Array Grid',
    viewConfig: {
        stripeRows: true
    }
});

レンダリング先:

<div id="info_panel"></div>

サンプル画像をどのように取得したのか疑問に思われる場合は、ストアをArrayStoreに変更し、データを配列に再フォーマットしましたが、その手順を省略して、データをそのまま挿入したいと思います。

編集:

私が本当に求めているのは、次の形式をとるグリッドの例のほとんどとは対照的に、JSONキーを値として使用するようにextjsに警告する方法だと思います。

{value: 'Hello'}, {property: 'World'}
4

1 に答える 1

2

コメント投稿者の 1 人と編集者が示唆したように、グリッドは、「プロパティ」と「値」が json オブジェクトのキーである json を消費するように構築されています。データのソースを変更して再フォーマットされたjsonで送信できるかどうかはわかりませんが、そうでない場合は、データを受信した後、いつでもクイックループを実行してそうすることができます:

var new_data = [];
Ext.each(grid_data, function(obj) {
  for (var prop in obj) {
    new_data.push({
      Property: prop,
      Value: obj[prop]
    });
  }
}, this);
于 2013-01-14T15:55:11.810 に答える