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.

¿Fue útil?

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();
   ...
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top