Acceda al modelo de columna de la cuadrícula ExtJS desde otro archivo
-
06-07-2019 - |
Pregunta
Tengo una cuadrícula ExtJS que tiene un botón configurado. El botón activa una función que se define en otro archivo JS que se incluye en la página de cuadrícula. La función se activa bien, pero en esa función quiero que las columnas cuenten así:
grid.getColumnModel().getColumnCount()
El problema es que recibo un error como: grid.getColumnModel no es una función.
En PHP haría un " global $ ext " y luego acceder a esa función. ¿Cómo puedo hacer esto en Ext? ¿Cómo puedo acceder a la cuadrícula desde otro archivo? ¿Qué necesita ser definido?
Gracias.
Solución
¿Cómo definiste el objeto de cuadrícula? Lo hiciste así:
var grid = new Ext.grid.GridPanel(...);
Si es así, el objeto de cuadrícula no está en alcance global. Elimine la " var " y ver si ayuda.
Otros consejos
Esto parece un problema de alcance. Consulte la variable alcance en JavaScript .
Básicamente, puedes hacer:
my_global_grid = ... // accessible in the current ~global~ context (document, window)
var my_local_grid = ... // accessible only in the function
window.my_window_global_grid = ... // accessible in the same window
También puede pasar el objeto de cuadrícula a su función como argumento:
function myFunction(arg1,arg2,grid){
...
var count = grid.getColumnModel().getColumnCount();
...
}