Question

J'ai une grille ExtJS qui contient un bouton. Le bouton déclenche une fonction définie dans un autre fichier JS inclus dans la page de grille. La fonction se déclenche bien mais dans cette fonction, je souhaite que le nombre de colonnes soit comme suit:

grid.getColumnModel().getColumnCount()

Le problème est que je reçois une erreur du type: grid.getColumnModel n’est pas une fonction.

En PHP, je ferais un "global $ ext". et ensuite accéder à cette fonction. Comment puis-je faire cela dans Ext? Comment puis-je accéder à la grille à partir d'un autre fichier? Que faut-il définir?

Merci.

Était-ce utile?

La solution

Comment avez-vous défini l'objet de la grille? L'avez-vous fait comme ça:

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

Si tel est le cas, l'objet de la grille n'est pas dans la portée globale. Supprimez le " var " et voir si cela aide.

Autres conseils

Cela ressemble à un problème de portée. Voir la variable la portée de JavaScript .

En gros, vous pouvez faire:

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

Vous pouvez également passer l'objet grille dans votre fonction en tant qu'argument:

function myFunction(arg1,arg2,grid){
   ...
    var count = grid.getColumnModel().getColumnCount();
   ...
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top