L'appel de fonction JavaScript à partir de code C# dans un contrôle utilisateur
Actuellement, je vais appeler mes fonctions JavaScript à l'aide:
ScriptManager.RegisterClientScriptBlock(this, typeof(Page), Guid.NewGuid().ToString(), "$(function(){$.jGrowl('Hello World');});", true);
Il fonctionne parfaitement! Même en utilisant la page maître et panneau de mise à jour, il fonctionne comme prévu.
Cependant, lorsque j'essaie de faire de même dans un contrôle utilisateur qui est incorporé dans une page qui est appelée avec un jQuery thickbox, il ne fonctionne pas!
Personne ne sait comment résoudre ce problème?
Où dans votre code est cet appel qui se passe? Page_Load()?
Lorsqu'un serveur bouton est cliqué
Lorsqu'un serveur bouton est cliqué
OriginalL'auteur aleafonso | 2011-09-08
Vous devez vous connecter pour publier un commentaire.
Cela a résolu le problème:
Comme il a été mentionné par @Joel, il y avait un problème avec le type, j'ai été en utilisant comme paramètre de la fonction.
Remarque: Si vous utilisez un thickbox, probablement, vous n'êtes pas à l'aide de la page maître dans la page qui contient le contrôle de l'utilisateur. Par conséquent, jQuery, doit également être référencée dans cette page depuis la page principale n'est pas la participation à la thickbox.
OriginalL'auteur aleafonso
Il me semble que ce que vous avez est incompatible avec le respect de types. Lorsque vous l'inclure dans une page réelle cette portion de code:
(this, typeof(Page),...
fonctionne parce que vous avez affaire à une Page. Une fois que vous mettre dans un UserControl vous n'avez plus affaire à un Page.Quelque chose que vous pouvez essayer est de l'ajout d'une propriété publique de votre commande d'utilisateur:
Dans la page qui inclut le contrôle d'inclure ce code dans le
Page_InitComplete
ouPage_Load
événement:Vous pouvez alors modifier votre scriptmanager de l'instruction:
OriginalL'auteur Joel Etherton
Vous êtes-vous assuré que votre contrôle utilisateur appelle databind()? J'ai connu un problème similaire avant.
OriginalL'auteur Jesse