0

ここに示すように、グリッドに親データを表示したいので問題があります。

親モデル

Ext.define('Ab.model.Marca', {
    extend: 'Ext.data.Model',
    fields: ['id','nombre'],
    hasMany: {model: 'Ab.model.Maquina', name: 'maquina'},
    proxy{...}
 });

子モデル

Ext.define('Ab.model.Maquina', {
    extend: 'Ext.data.Model',
    fields: ['id','nombre', 'codigo', 'estado'],
    associations: [
        {type:'belongsTo', model:'Ab.model.Marca', name: 'marca'},
    ]
    proxy:{...}
 });

子グリッド

さて、MaquinaController は Store からのロードを実行しますが、それは重要ではありません。ロード情報は非常に優れているからです。問題は、親データを表示できないことです。

Ext.define('Ab.view.maquina.MaquinaList', {
    extend: 'Ext.grid.Panel',
    alias: 'widget.maquinalist',
    store: 'Maquinas',
    columns: [
        { text: _('Nombre'), flex: 1, dataIndex: 'nombre' },
        { text: _('Código Externo'), flex: 1, dataIndex: 'codigo' },
        { text: _('Estado'), flex: 1, dataIndex: 'estado' },
        { text: _('Marca'), flex: 1, dataIndex: 'marca' }    <<< HOW CAN I SHOW MARCA?
    ]
});

前もって感謝します。

4

1 に答える 1

2

column.renderer をオーバーライドし、record.getParent().get('someData'); を返します。

http://docs.sencha.com/ext-js/4-1/#!/api/Ext.grid.column.Column-cfg-renderer

renderer: function(value, metadata, record, rowIndex, colIndex, store, view){
  return record.getMarca().get('nombre');
}

また、次の規則に従っていることを確認してください。

http://extjs-tutorials.blogspot.ca/2012/05/extjs-belongsto-association-rules.html

于 2012-06-08T17:24:41.390 に答える