Lectura de tags repetidos de un xml - grid
Hola,
Me gustaría saber como leer tags repetidos de un xml usando un grid. En el ejemplo de abajo quiero mostrar todos los teléfonos de la persona en un grid, pero solo me muestra el primer teléfono usando "dataIndex: 'telefono > numero'". Me podrían ayudar con esto por favor. Muchas gracias!.Steve.
Ejemplo:
xml:
Me gustaría saber como leer tags repetidos de un xml usando un grid. En el ejemplo de abajo quiero mostrar todos los teléfonos de la persona en un grid, pero solo me muestra el primer teléfono usando "dataIndex: 'telefono > numero'". Me podrían ayudar con esto por favor. Muchas gracias!.Steve.
Ejemplo:
xml:
<persona> <nombre>Fulano</nombre> <empresa> <id>945123</id> </empresa> <telefono> <numero>999999</numero> </telefono> <telefono> <numero>888888</numero> </telefono> </persona>
stores.storePersona = new Ext.data.Store({ autoLoad: false, proxy: new Ext.data.HttpProxy( {url: 'http://localhost:8080/SVOC-Project/TestServlet'} ), fields: [ {name: 'nombre'}, --> OK {name: 'empresa > id', type: 'int'}, --> OK {name: 'telefono> numero', type: 'int'} ????????????????????? ] }) }); grids.persona = new Ext.grid.GridPanel({ store:stores.storePersona , columns: [ { id: 'idTelefono', header: 'Telefono', dataIndex: 'telefono > numero', ??????? }, ], });
Sucede que le estas indicando en el modelo del store que el campo telefono sea de tipo entero, por lo tanto solo esta tomando un valor.
Lo que te recomiendo hacer es utilizar la función convert dentro de la definición del field y tu manualmente sacar los dos valores del registro que se está procesando.
Saludos
Lo que te recomiendo hacer es utilizar la función convert dentro de la definición del field y tu manualmente sacar los dos valores del registro que se está procesando.
Saludos
telefonoLista = new Ext.data.XmlReader({ record: 'telefono', fields: [ {name: 'numero', type: 'int'} ] });
stores.storePersona = new Ext.data.Store({ autoLoad: false, proxy: new Ext.data.HttpProxy( {url: 'http://localhost:8080/SVOC-Project/TestServlet'} ), fields: [ {name: 'nombre'}, {name: 'empresa > id', type: 'int'}, {name:'telefono',convert:function(v,n){ return telefonoLista.readRecords(n).records; }}, ] })
});
grids.persona = new Ext.grid.GridPanel({ store:stores.storePersona , columns: [ { id: 'idTelefono', header: 'Telefono', dataIndex: 'telefono > numero', ??????? }, ],});
stores.storePersona = new Ext.data.Store({ autoLoad: false, proxy: new Ext.data.HttpProxy( {url: 'http://localhost:8080/SVOC-Project/TestServlet'} ), fields: [ {name: 'nombre'}, {name: 'empresa > id', type: 'int'}, {name:'telefono',convert:function(v,n){ return telefonoLista.readRecords(n).records; }}, ] })
});
grids.persona = new Ext.grid.GridPanel({ store:stores.storePersona , columns: [ { id: 'idTelefono', header: 'Telefono', dataIndex: 'telefono > numero', ??????? }, ],});
¿Conoces a alguien que pueda responder esta pregunta? Comparte el link en Twitter o Facebook
Es necesario registrarse para poder participar en el foro! Si ya tienes una cuenta puedes entrar y comentar en este foro.