Problema rowclick - rowselect
Ahora me esta surgiendo algo mas complejo. Tengo una app (adjunto imagen) que basicamente tiene un panel norte general (donde elijo el empleado que quiero ver) y otro panel center con detalles de los movimientos en la fabrica (ausencias, sanciones, etc) en el panel center tengo un panel expandible tambien en east, que muetra detalles mas profundos por si se necesitan junto con la foto. Para cargar ese panel use el metodo rowselect y update que propone el ejemplo de extdisigner (el del video de los detalles de los autos) en la pagina de sencha. Ahora pongo mi codigo y sigo.
MyPanel = Ext.extend(MyPanelUi, {
initComponent: function() {
MyPanel.superclass.initComponent.call(this);
this.legajos.on('rowclick',this.leer_justif,this);
this.legajos.on('rowclick',this.leer_resumen,this);
this.legajos.on('rowclick',this.leer_resumenanio,this);
this.legajos.on('rowclick',this.leer_ausencias,this);
this.legajos.on('rowclick',this.leer_sanciones,this);
var sm = this.legajos.getSelectionModel();
sm.on('rowselect', this.onGridRowSelect, this);
},
onGridRowSelect: function(sm, rowIdx, r){
this.detalles.update(r.data)
},
leer_justif: function(grid,index) {
this.justif.getStore().baseParams.Legajo=grid.getStore().getAt(index).get('Legajo');
this.justif.getStore().load();
},
leer_resumen: function(grid,index) {
this.resumen.getStore().baseParams.Legajo=grid.getStore().getAt(index).get('Legajo');
this.resumen.getStore().load();
},
leer_resumenanio: function(grid,index) {
this.resumenanio.getStore().baseParams.Legajo=grid.getStore().getAt(index).get('Legajo');
this.resumenanio.getStore().load();
},
leer_ausencias: function(grid,index) {
this.ausencias.getStore().baseParams.Legajo=grid.getStore().getAt(index).get('Legajo');
this.ausencias.getStore().load();
},
leer_sanciones: function(grid,index) {
this.sanciones.getStore().baseParams.Legajo=grid.getStore().getAt(index).get('Legajo');
this.sanciones.getStore().load();
}
});
Lo que hago aca es pasarle los valores del store general para no cargar otro store mas con los mismos datos, pero tengo un problema: rowselect me cambia los datos al hacer click o al mover con las flechas del teclado... rowclick me cambia SOLO al hacer click. Entonces si el operador cambia de registro con el teclado, parte delos datos de van a actualizar y otra parte no, dejando discrepancia entre los datos del empleado y los movimientos.
Lo que necesito es hacer que todo funcione con rowselect o rowclick, pero ambos de la misma manera. Obviamente cambie rowclick por rowselect y viceversa pero uno de los dos SIEMPRE deja de actualizar.
Adjunto una imagen y espero que por favor alguien me de una mano.
Saludos.
Hola! estoy en la misma situación, me funciona con rowclick pero no rowselect, ¿alguien puede ayudarme?
y porque no usas ambos?
this.mi_grilla.on('rowselect',this.mi_funcion,this);
this.mi_grilla.on('rowclick',this.mi_funcion,this);
leyendo un poco mas tu codigo, me pregunto ¿habria algun problema de hacerlo asi?
MyPanel = Ext.extend(MyPanelUi, {
initComponent: function () {
MyPanel.superclass.initComponent.call(this);
this.legajos.on('rowclick', this.leer, this);
this.legajos.on('rowselect', this.leer, this);
},
leer: function(grid, index){
var Legajo = grid.getStore().getAt(index).get('Legajo');
this.justif.getStore().baseParams.Legajo = Legajo;
this.resumen.getStore().baseParams.Legajo = Legajo;
this.resumenanio.getStore().baseParams.Legajo = Legajo;
this.ausencias.getStore().baseParams.Legajo = Legajo;
this.sanciones.getStore().baseParams.Legajo = Legajo;
this.justif.getStore().load();
this.resumen.getStore().load();
this.resumenanio.getStore().load();
this.ausencias.getStore().load();
this.sanciones.getStore().load();
this.detalles.update(grid.getStore().getAt(index).data);
}
});
Bueno, funcionar funciona como quería... pero lo que no anda es el rowselect. Solo Funciona rowclick y al bajar con el cursor no hace nada en ninguno de los dos paneles.
Saludos.
puedes usar el evento keypress, aqui puedes encontrar algo de información:
http://rafeekphp.wordpress.com/2009/02/19/extjs-tips-for-gridpanel-row-marking-colouring-focusing-special-key-event-firing/
tambien puedes revisar al documentacion del APi sobre la propiedad "key" del grid
suerte y cuéntanos como te va con ello
¿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.