2012-06-08 20 views
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:{...} 
}); 

CHILD GRID

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

在此先感谢。

回答

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

+0

是不是还有其他的解决办法?也许是这样的: '{text:_('Marca'),flex:1,dataIndex:'marca.nombre'}' – richardhell

+0

好的,这是非常有用的,但我有另一个问题:我该如何执行代码位于列左侧的功能中。 – richardhell

+0

我不确定这是什么意思。你可以尝试重新措词吗? Thx –