AGREGAR ITEMS A UN PANEL CON UN ONCLICK EN EL ARBOL
Hola que tal, tengo una duda ... q puede que le pase a otros.
Lo que trato de hacer es que cada vez que de click ala hoja de un "arbol". pueda agregar un item a un panel center.
ES LA SOLUCIÓN QUE DI PARA QUE NO CARGEN TODOS LOS ITEMS DE MI PANEL A LA VEZ Y CAUSE LENTITUD.
Sin embargoo aún no me funciona del todo bien, les dejo algo del codigo. en que peudo estar fallando, es ext 3.4
Lo que trato de hacer es que cada vez que de click ala hoja de un "arbol". pueda agregar un item a un panel center.
ES LA SOLUCIÓN QUE DI PARA QUE NO CARGEN TODOS LOS ITEMS DE MI PANEL A LA VEZ Y CAUSE LENTITUD.
Sin embargoo aún no me funciona del todo bien, les dejo algo del codigo. en que peudo estar fallando, es ext 3.4
----------ESTA FUNCION ACTIVA EL ITEM DE MI PANEL DEPENDIENDO DE LA HOJA QUE DE CLICK-- funciona ! pero no agrega --- tree.on('click', function(n){ var sn = this.selModel.selNode || {}; // selNode es nulo en la selección inicial // ignorar los clics en las carpetas y el nodo actualmente seleccionado /*Ext.getCmp('center').add(n.id); ----------------PROBÉ CON ESTO Ext.getCmp('center').doLayout(); */ center.add(New_Item); ---------- Y ESTO :( center.doLayout(); Ext.getCmp('center').layout.setActiveItem(n.id); });
Este es mi panel:
-------------------aqui tengo mis items pero, quiero hacerlo dinamico y que se agregen cuando den click y no desde el inicio- var center = { //xtype : 'panel', id : 'center', region : 'center', layout: 'card', activeItem: 0, //height : 600, border : false, margins : { bottom:0, right:3 }, items:[general/*,oro,usuarios,Atento,upload*/]//<--- };
Vas por el camino correcto, solo que en lugar de insertar el ID del nodo, necesitas crear un componente, por ejemplo.
var newPanel = Ext.getCmp('center').add({ xtype : 'container', id : 'panel-' + n.id, html : 'Hola!' }); Ext.getCmp('center').getLayout().setActiveItem(newPanel)
Saludos
Gracias pero lo que sucede es que yo inserto el Id del nodo para luego llamarlo con esto:
(Cabe resaltar que el Id del Nodo es: Usuarios)
Con esto Ejecuto mi var: (funciona)
Llamo a esta variable que esta definida como ITEM en el PANEL // y funciona.
Lo que quiero esque no este definida y pueda crearla en el camino ya que al estar definida como items, lo hace lento.
El detalle esta en como puedo agregar un item en el panel dandole click a una hoja. Y luego se ejecute con esto ( Ext.getCmp('center').layout.setActiveItem(n.id); ) EL ITEM TENDRA EL MISMO NOMBRE DEL ID.
(Cabe resaltar que el Id del Nodo es: Usuarios)
Con esto Ejecuto mi var: (funciona)
tree.on('click', function(n){ var sn = this.selModel.selNode || {}; // Ext.getCmp('center').layout.setActiveItem(n.id); }); var Usuarios= { id: 'Usuarios', title: 'Usuarios', height : 460, html : '<iframe id="frame-welcome" src="Conexion/grafico.php" border="0" width="100%" height="100%" ' +'style="overflow:auto;width:100%;height:100%;" ></iframe>' };
Llamo a esta variable que esta definida como ITEM en el PANEL // y funciona.
Lo que quiero esque no este definida y pueda crearla en el camino ya que al estar definida como items, lo hace lento.
El detalle esta en como puedo agregar un item en el panel dandole click a una hoja. Y luego se ejecute con esto ( Ext.getCmp('center').layout.setActiveItem(n.id); ) EL ITEM TENDRA EL MISMO NOMBRE DEL ID.
Acabo de solucionar mi problema... Muchas gracias !! Agradesco tu ayuda Crysfel, ya que me ayudo de mucha orientación. Tuve que agregar unas lineas más de codigo para ejecutarlo como queria.
Por ultimo si alguien tiene el mismo problema dejo parte del codigo que tuve que agregar:
Elimino el item que existe.
Por ultimo si alguien tiene el mismo problema dejo parte del codigo que tuve que agregar:
Elimino el item que existe.
var eliminar = Ext.getCmp('center').items.first(); Ext.getCmp('center').remove(eliminar,true); Ext.getCmp('center').add({ id : item, html : web});
Donde web es mi variable.
Saludos,
¿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.