Domanda

Ho una griglia ExtJS che contiene un pulsante. Il pulsante attiva una funzione definita in un altro file JS incluso nella pagina della griglia. La funzione si attiva ok ma in quella funzione voglio ottenere il conteggio delle colonne in questo modo:

grid.getColumnModel().getColumnCount()

Il problema è che visualizzo un errore come: grid.getColumnModel non è una funzione.

In PHP farei un "$ ext globale" e quindi accedere a quella funzione. Come posso farlo in Ext? Come posso accedere alla griglia da altri file? Cosa deve essere definito?

Grazie.

È stato utile?

Soluzione

Come hai definito l'oggetto griglia? L'hai fatto in questo modo:

var grid = new Ext.grid.GridPanel(...);

In tal caso, l'oggetto griglia non rientra nell'ambito globale. Rimuovi " var " e vedere se aiuta.

Altri suggerimenti

Sembra un problema con l'ambito. Vedi la variabile ambito in JavaScript .

Fondamentalmente, puoi fare:

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

Potresti anche passare l'oggetto griglia nella tua funzione come argomento:

function myFunction(arg1,arg2,grid){
   ...
    var count = grid.getColumnModel().getColumnCount();
   ...
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top