2012-06-08 10 views
10

Tôi có lưới nên thực thi trình kết xuất trên cột, nhưng không hiển thị bất kỳ thứ gì và không ghi lại lại bản ghi.ExtJS 4 cột “trình kết xuất” trên lưới

Xem

Ext.define('Ab.view.maquina.MaquinaList', { 
    extend: 'Ext.grid.Panel', 
    alias: 'widget.maquinalist', 
    store: 'Maquinas', 
    tbar: [ 
     { text: _('Agregar'), action:'add'}, 
     { text: _('Editar'), action: 'upd'}, 
     { text: _('Eliminar'), action: 'del'} 
    ], 
    columns: [ 
     { text: _('Nombre'), flex: 1, dataIndex: 'nombre' }, 
     { text: _('Estado'), flex: 1, dataIndex: 'estado'}, 
     { text: _('Marca'), flex: 1, dataIndex: 'codigo', renderer: function(value, record){this.renderMarca(value, record)}} 
    ], 
    renderMarca: function(value,record){ 
      console.log(value); < show value 
      console.log(record.get('nombre')); < error 
      return value; < don't show value on the column 

    }  
}); 

Cảm ơn

Trả lời

24

Kỷ lục không được đăng nhập một cách chính xác đó vì chức năng renderer có thông số khác nhau hơn so với những bạn đang cố gắng để sử dụng. Từ http://docs.sencha.com/ext-js/4-1/#!/api/Ext.grid.column.Column-cfg-renderer:

renderer: function (value, metaData, record, row, col, store, gridView) { 

Bạn cũng không trả lại giá trị từ bên trong trình kết xuất của mình. Việc này sẽ khắc phục hai vấn đề sau:

{ 
    text: _('Marca'), 
    flex: 1, 
    dataIndex: 'codigo', 
    renderer: function(value, metaData, record, row, col, store, gridView){ 
    return this.renderMarca(value, record); 
    } 
} 
+0

Rất tốt!. Vấn đề là RETURN và thứ tự của params. Cảm ơn rất nhiều. – richardhell