Foro

Tree Panel con soporte para búsqueda.

0
Saludos ante todo.
Colegas, ya envié esta duda pero no estoy seguro de que halla llegado con éxito.
acá tengo un proyecto donde uso un TreePanel (treegrid) editable y todo :) resulta que me acabo de conectar a los datos reales y el arbol se me complica... o sea, que sería muy util en este caso tener un "textfield", en el que yo escriba y se valla mostrando el resultado de lo encontrado en el mismo "store" de mi treegrid... justamente como en el buscador de los ejemplos de la documentación de ExtJS. GRACIAS MILES!!!

0
chequen esto:
//Code here
xtype: 'combobox',
id: 'comboBusqueda',
emptyText: 'buscar...',
triggerCls: 'x-form-search-trigger',
store: Ext.create('Ext.data.Store', {
fields: ['idEOP','descripcion']
}),
displayField: 'descripcion',
valueField: 'idEOP',
queryMode: 'local',
forceSelection: true,
width: 200,
listeners:{
select: {
fn: function(){
var valor = Ext.getCmp('comboBusqueda').getValue();
var recordG = Ext.getCmp('eoptree').getStore().getNodeById(valor);
Ext.getCmp('eoptree').getSelectionModel().select(recordG);
}
}
}

se trata de un combo que se encarga de seleccionar de un treepanel un nodo X en dependencia de la selección que haga en dicho combo. Mi problema consiste en cargar en el combo todos los elementos de la columna "descripcion" del treepanel!!!

la solución debe estar por aquí:

//Code here
Ext.getCmp('comboBusqueda').getStore().add({"idEOP":record.get('id'), "descripcion":value});

esto lo puse en el renderer de la columna "descripcion" del treepanel. pero no obtengo lo que quiero. me repite mucho lo mismo.

quisiera alguna sugerencia para lograr lo que quiero.

GRACIAS.





0
hola denuevo.
he resuelto con esto:

//Code here
renderer: function(value, metaData, record, rowIdx, colIdx, store, view){
//Ext.getCmp('comboBusqueda').getStore().removeAll();
if (!Ext.getCmp('comboBusqueda').getStore().findRecord('descripcion',value)) {
Ext.getCmp('comboBusqueda').getStore().add({"idEOP":record.get('id'), "descripcion":value});
};
if (!record.data.leaf) {
metaData.tdAttr = 'style="background-color:#C1C4C6;color:black;"';
}
return value
}

 al menos no me repiten los valores. De todos modos si tienen una idea mejor o más limpia lo agradecería mucho.

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.