Tengo una ventana Ext (Ext v3) que contiene una barra de herramientas con un toggleGroup. Mi objetivo es mantener los botones en estado alternado, de modo que cuando se abre la ventana, los botones se alternan como antes.
Mi Tbar se ve así
new Ext.Toolbar({ items: [ { 'xtype': 'button', 'text': 'Order Alerts', 'listener': 'alertsOnClick', 'listenerType': 'click', 'enableToggle': 'true', 'toggleGroup': 'buttonTabs', 'id': 'order_all', } ] })Estoy grabando las identificaciones haciendo clic así
function alertsOnClick(){ return function () { grid.currentButton = this.id; } } Cuando se abre la ventana, espero a que la tienda termine usando .load() con una función de devolución de llamada que se ejecuta
const gridStore = Ext.getCmp('some_id').getStore(); if(!window.grid || grid.type === 'clear') { window.grid = { }; window.grid.type = 'clear'; window.grid.currentButton = 'all_filter' Ext.getCmp(grid.currentButton).toggle(); gridStore.filter(grid.field, grid.type); return undefined; } gridStore.filter(grid.field, grid.type); let t = Ext.getCmp(grid.currentButton); // TODO: Find out why you need to toggle this three times to get it to work t.toggle(); t.toggle(); t.toggle(); Si llamo a .toggle() una vez, no funciona, pero parece funcionar si envío spam .toggle() un número impar de veces. Una parte de mí piensa que los botones en sí mismos no se destruyen realmente al cerrarlos, pero su CSS se borra. Aunque no estoy seguro si ese es el caso. ¿Alguna idea sobre cómo manejar esto?
Pude solucionar esto eliminando el grupo de alternancia y haciendo un seguimiento del botón en el que se hizo clic anteriormente y .toggling(false)