如何在Grid上显示模型的“父数据”?

时间:2012-06-08 17:20:40

标签: extjs4 extjs extjs-mvc

所以我有一个问题'因为我想在网格上显示父数据,如下所示:

家长模式

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?
    ]
});

提前致谢。

1 个答案:

答案 0 :(得分: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