0

Ext JSの基本的な部分を知る必要のあるプロジェクトが設定されているため、Ext JSを学習しようとしています。基本的に、次のことに固執しています。

共通のフィールドに基づいて、2つのJSONファイルを同じテーブルにロードする必要があります。

ファイル1

{
    "data" : [{
        "id" : "12",
        "data" : {
            "field1" : "data 1-1",
            "field2" : "data 1-2",
        }
    },{
        "id" : "34",
        "data" : {
            "field1" : "data 2-1",
            "field2" : "data 2-2",
        }
    }]
}

ファイル2:

{
    "otherdata" : [{
        "id" : "12",
        "stuff" : {
            "var1" : "stuff 1-1",
            "var2" : "stuff 1-2",
        },
        "morestuff" : {
            "v1" : "more 1-1",
            "v2" : "more 1-2",
            "v3" : "more 1-3"
        }
    },{
        "id" : "34",
        "stuff" : {
            "var1" : "stuff 2-1",
            "var2" : "stuff 2-2",
        },
        "morestuff" : {
            "v1" : "more 2-1",
            "v2" : "more 2-2",
            "v3" : "more 2-3"
        }
    }]
}

私がしようとしているのは、これらを次のようなテーブルに解析することです。

|-----------------------------------------------------------------------------------
|    |        data         |          stuff        |           morestuff           |
|-----------------------------------------------------------------------------------
| id |  field1  |  field2  |    var1   |    var2   |    v1    |    v2    |    v3   |
|-----------------------------------------------------------------------------------
| 12 | data 1-1 | data 1-2 | stuff 1-1 | stuff 1-2 | more 1-1 | more 1-2 |more 1-3 |
| 34 | data 2-1 | data 2-2 | stuff 2-1 | stuff 2-2 | more 2-1 | more 2-2 |more 2-3 |
------------------------------------------------------------------------------------

私が立ち往生しているのは次のとおりです。

2つのJSONファイルロードし、それらを共通のフィールドで1つのデータストアにリンクするにはどうすればよいですか?

データモデル内にフィールドとサブフィールドを作成するにはどうすればよいですか?(単一のフィールドを作成することはできますが、これらのフィールド内にフィールドを作成する方法がわかりません)

私のモデルは現在次のようになっています。

Ext.define('NS.model.Group', {
    extend: 'Ext.data.Model',
    fields: ['id','field1', 'field2', 'var1', 'var2', 'v1', 'v2', 'v3']
});
4

1 に答える 1

2

グループ化ヘッダーについては、次のサンプルを参照してください:http: //dev.sencha.com/deploy/ext-4.0.0/examples/grid/group-header-grid.html

これにより、必要なヘッダーに似たヘッダーを作成できます(私は思います)。

2つのデータストアを1つのストアに結合する限り、あなたの場合は可能ですが、(まだ)お勧めしません。他のストアに属する列には、カスタムレンダラー関数を使用できます。このようなもの:

{ text: 'id', flex: 1, dataIndex: 'id' },
{ text: 'v1', flex: 1, dataIndex: 'id',  
  renderer: function(value) {   
    var st = Ext.getStore('Store2'),
        idx = st.findExact('id', value);
    if (idx >= 0)
      return st.getAt(idx).get('v1');
    else 
      return '-';
  }
},
于 2012-04-27T12:12:27.797 に答える