2012-03-19 9 views
6

Estoy usando una NestedList con un TreeStore subyacente. Ahora quiero agregar elementos a la NestedList como hojas. ¿Cómo puedo hacer esto?Sencha Touch 2: Insertar en TreeStore/NestedList

Actualmente mi código (Controller, onAddButtonTapped) tiene el siguiente aspecto:

var store = Ext.getStore('menuStore'); 
var customerAreaNode = store.getRoot().getChildAt(1); 
customerAreaNode.appendChild({name: "text", leaf:true}); 
customerAreaNode.expand(); 
store.sync(); 

Este código da como resultado dos nuevos listentries vacíos en el nivel de hoja (detrás del nodo correcto) y una nueva listentry el nivel de nodo. Cada entrada nueva no tiene nombres que se muestren en la lista anidada pero cada elemento contiene "texto" en su campo de nombre. Curiosamente, una de las nuevas entradas en el nivel de la hoja no está escrita en el Modelo subyacente. Por lo que los métodos correspondientes modelo could't se encuentran:

Uncaught TypeError: Cannot call method 'getSelectedName' of undefined 

¿Alguien sabe un tutorial fácil como añadir datos en NestedList/TreeStore? No pude encontrar un buen ejemplo en los documentos sencha touch.

+0

Esto podría ayudar: http://stackoverflow.com/questions/9655201/update-a-nested-list-in -sencha-touch-2 --- estoy en mi móvil, así que no puedo probar el código, mira si eso te ayuda a empezar –

Respuesta

3

El campo de visualización predeterminado para elementos de hoja es "texto". You can get the information from here. Si desea utilizar "texto" como campo de visualización, entonces usted necesita para cambiar esta línea para

customerAreaNode.appendChild({text: "text", leaf:true}); 

o puede cambiar campo de la pantalla de la lista anidada, por lo que su modelo no tiene que cambiar para este tiempo.

yournestedlist.setDisplayField('name'); 

Espero que esto ayude.

0

En mi caso he utilizado para actualizar raíz y nodos secundarios como la siguiente manera

Ext.getStore('Contactsstore').getAt(1).getChildAt(0).set('Email',contactemail);  
Ext.getStore('Contactsstore').getAt(1).set('ContactTitle',contacttitle);