2009-09-11 3 views
1

Je travaille sur un projet qui contient une seule page (home.aspx).Pourquoi les codes Javascript ne s'exécutent pas sous le contrôle de l'utilisateur?

Home.aspx contient un ScriptManager et un UpdatePanel — un div avec des LinkButtons qui chargent les UserControls associés.

Certaines de ces commandes utilisateur contiennent du javascript. Mon problème est que le javascript ne fonctionne pas à l'heure (après le clic LinkButton ou UC charge).

Comment résoudre ce problème?

+1

Veuillez poster le code correspondant – inkedmn

+0

L'une des réponses vous at-elle aidé? –

Répondre

1

Assurez-vous que votre script est enregistré avec le ScriptManager.

0

Si les contrôles utilisateur ont JS en ligne, ils ne fonctionneront pas; JavaScript ajouté en définissant innerHTML d'un élément (ce que fait UpdatePanel) ne s'exécute pas.

Comme Rick Schott mentionne, si les contrôles utilisateur enregistrent leur script avec la ScriptManager - soit en incluant asp:ScriptReference s dans leur ScriptManagerProxy ou en ajoutant de leur codebehind en utilisant l'une des variantes ScriptManager.Register* - il fonctionnera.

0

Merci pour vos réponses, mais j'avais examiné cette solution. Les contrôles utilisateur n'ont pas Script Manager, Script Manager placé dans Home.aspx. J'utilise à la fois Page.RegisterClientScriptBlock, Page.RegisterStartupScript, ... Mais ceux-ci ne fonctionnent pas correctement. Codes Java script dans l'UC sont dans la balise Script en haut de l'UC comme ci-dessous:

    function pageLoad() { 
    $addHandler($get("<%=Button2.ClientID%>"), 'click', cp); 

}
fonction cp() {

/* Do shomthing ... */ 

}

// * ################ FIN DES CODES JAVASCRIPT

JS Code Button2 est un bouton ASP placé dans UC. Je trouve une nouvelle chose aujourd'hui: Si ajouter defer = 'reporter' dans la balise Script ci-dessus, il fonctionne comme un charme! Mais cette solution est pour IE (SEULEMENT), donc ce n'est pas la meilleure solution. Que puis-je faire de plus ...?

+0

ScriptManager.Register * est statique. Si votre contrôle utilisateur est dans une page qui a un ScriptManager (requis avec un UpdatePanel) alors il le trouvera. –

Questions connexes