2013-06-05 1 views
1

Pouvez-vous mettre du code jQuery dans une page .ascx?Chargement de jQuery à partir de la page ascx de contrôle des utilisateurs ASP.NET?

J'ai un contrôle utilisateur que j'utilise dans un projet ASP.NET. Plusieurs instances de ce contrôle sont créées dynamiquement lorsque je sélectionne quelque chose sur la page default.aspx. Je veux manipuler des parties de ce contrôle utilisateur avec jQuery. Cependant, jQuery ne semble pas se charger.

Je référence la bibliothèque jQuery dans ma page MasterPage. Je l'ai testé le code suivant de mon default.aspx et il fonctionne, mais je reçois pas de réponse lorsque j'utilise le même code à l'intérieur ma page ascx:

<script type="text/javascript" charset="utf-8"> 
    if (typeof ($) != 'function') alert('This component requires jQuery.'); 
    else $(function() { alert('The DOM is ready for jQuery manipulation.'); }); 
</script> 

Toutes les idées?

Thx.

Répondre

0

Si vous avez référencé jQuery dans masterpage, vous pouvez y accéder dans .ascx.

pouvez-vous mettre cela dans $ (document) .ready (function() {/ * votre code .. * /}); -en ascx- et vérifier?

+0

oui. Rien ne se passe. –

0

Pour inclure et exécuter des lignes de code JavaScript ou JQuery dans un contrôle utilisateur .ascx, vous ne devez pas insérer la balise <script> dans le code HTML. Utilisez-le uniquement pour insérer les références aux fichiers JQuery si vous en avez besoin. Les événements de page ASP.NET comme Load ou UpdatePanel User control ne déclenchent pas nécessairement les événements côté client, par exemple lorsque le chargement est terminé sur la page .aspx. Pour obtenir cela, vous devez utiliser ScriptManager.RegisterClientScriptBlock. Pour le succès de votre échantillon, mis en place ce code en cas de charge de votre commande .ascx:

ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "ActivateJsSample", 
@"<script type = 'text/javascript'> 
if (typeof ($) != 'function') alert('This component requires jQuery.'); 
else $(function() { alert('The DOM is ready for jQuery manipulation.'); }); 
}); 
</script>", false); 

Ceci synchroniser et de feu avec l'événement de charge de votre contrôle utilisateur, et le feu chaque fois.

Questions connexes