2010-01-30 10 views
0

J'ai un GridView de photos miniatures dans un UpdatePanel, avec des icônes cliquables dans chaque ligne qui chargent chacune un contrôle utilisateur contenant une petite carte Google dans la ligne correspondante. L'idée est que l'utilisateur puisse géolocaliser (en cliquant sur la carte) n'importe quelle photo dans le GridView.Comment exécuter javascript dans un contrôle utilisateur ajouté dynamiquement

Dans la carte de contrôle de l'utilisateur, il y a un certain Javascript initialisant la carte:

function initializeMap() { 
    if (GBrowserIsCompatible()) { 
     var map = new GMap2(document.getElementById('Map'), {size: new 
GSize(336, 200)}); 
     // set the map controls, set the centre, etc. 
    } 
} 

problème est: Je ne sais pas comment appeler la méthode initializeMap(). Comme il est dynamiquement ajouté à la page, toute tentative de lier le bouton d'appel par "onClientClick=initializeMap()" par exemple, donne une erreur JS, indiquant que la méthode n'est pas définie.

J'ai essayé

ClientScript.RegisterStartupScript(this.GetType(), "initializeMap", "<script type=\"text/javascript\">alert('Here'); initializeMap();</script>"); 

mais je ne pense pas que je suis sur la bonne voie avec celui soit.

+0

Est-ce l'ensemble du contrôle utilisateur enveloppé dans un panneau de mise à jour? –

+0

Oui, l'ensemble GridView est enveloppé dans le UpdatePanel, et le contrôle utilisateur est ajouté à une ligne de ce GridView –

Répondre

0

Vous devez utiliser la ScriptManager pour émettre votre javascript où il y a un UpdatePanel impliqué comme ceci:

ScriptManager.RegisterStartupScript(this, this.GetType(), "initializeMap", "initializeMap();", true); 
+0

Merci Naaem, c'est ce que j'ai fini par faire. –

Questions connexes