Je veux appeler des méthodes de côté STATIC Server de JS, donc je décide d'utiliser le contrôle de scriptManager sur mon site.
J'ai donc une page maître, avec une telle structure: mais lorsque la page est chargée, j'ai une exception JS - PageMethods est indéfinie.
Je suppose que cet objet sera créé implicite afin que je puisse l'utiliser dans mon javascript. P> p>
4 Réponses :
Pour utiliser des pageMethods, vous devez suivre ces étapes:
scriptManager CODE> et définir activerpageMethods code>. (Vous avez fait). Li>
- Créer un
Méthode static code> dans votre code derrière et utilisez le [webmethod] code> attribut. li>
- Appelez votre méthode en JavaScript comme si vous devriez faire en C # mais que vous avez plus de paramètre remplissage, le
Essosse code> et Error code> Callbacks. (Vous avez fait). Li>
ol> Avez-vous manqué de ces étapes? P>
EDIT:
Je viens de réaliser que vous avez fait ceci: P>
[WebMethod]
public static string GetGiftFileUrl(string name, int width, int height)
{
//... work
return "the url you expected";
}
Peut-être Webmethod-PageMethods et Json.
Dans votre codeBeHind Créez cette méthode:
<script type="text/javascript"> function getGiftFileUrl() { PageMethods.GetGiftFileUrl("hero", 1024, 768, OnSucceeded, OnFailed); } function OnSucceeded(response) { alert(response); } function OnFailed(error) { alert(error); } getGiftFileUrl(); </script>
Vous manquez l'appel actuel à GetGiftFileURL () à partir du contrôle ASP
Je me rends compte pourquoi l'objet PageMethod était indéfini, car le composant ScriptManager est placé à côté du script qui utilise PageMethod, alors lorsque la page est rendue et que le script est exécuté, il n'y a pas de pageMethod en ce moment. J'ai donc besoin d'appeler getgiftfileURL () sur le bouton Clic ou sur l'événement de la fenêtre de fenêtre, lorsque tous les scripts de la page sont prêts à être utilisés. P>
tout échantillon final avec solution? ou marqué @Vitorcanova réponse.
<script type="text/javascript"> function Generate() { var result = PageMethods.GenerateOTP(your parameter, function (response) { alert(response); }); } </script> Will 100% work.