2011-08-08 15 views
7

Tengo un almacén de datos y una cuadrícula. Intento declarar una nueva columna llamada FullName que combinaría los dos dataindexes. Después de pasar algún tiempo investigando este problema, entiendo que podría ser un procesador (nivel de cuadrícula) o podría ser una columna personalizada en el almacén de datos (¿mapeo?).Extjs 4 - Combinación de dos columnas de cuadrícula

¿Alguien puede proporcionar una muestra de código que implemente dicha columna?

// XML 
<person> 
    <first_name>John</first_name> 
    <last_name>Smith</last_name> 
</person> 

// Store 
Ext.create('Ext.data.Store', { 
    autoLoad: true, 
    storeId: 'TestStore', 
    fields: ['first_name', 'last_name'], 
    data: parsed_xml_object, 
    proxy: { 
     type: 'memory', 
     reader: { 
      type: 'xml', 
      record: 'person' 
     } 
    } 
}); 

// Grid 
TestGrid = Ext.create('Ext.grid.Panel', { 
    title: 'Test', 
    store: Ext.data.StoreManager.lookup('TestStore'), 
    columns: [ 
     { header: 'First Name', dataIndex: 'first_name' }, 
     { header: 'Last Name Name', dataIndex: 'last_name' }, 
    ], 
    height: 200, 
    autowidth: true 
}); 

Respuesta

10

Utilice un intérprete personalizado:

{ 
    header: "Name", 
    dataIndex: 'last_name', 
    renderer: function(value, p, r) { 
     return r.data['last_name'] + ', ' + r.data['first_name']; 
    } 
} 
+0

gracias! esto funcionó! –

+0

@Diodeus Gracias por el código, pero ¿podría explicarme qué significan los parámetros en la función anon? ¿Hay documentación para esto? – MHTri

+0

Consulte "Opción 1. Definir un representador personalizado" alrededor de 1/2 opinión abajo en la página: http://www.sencha.com/learn/grid-faq/ –

Cuestiones relacionadas