2010-03-12 8 views
0

Je suis un novice jQuery et j'essaie de lire le résultat d'un PageMethod en mon script jQuery. J'ai un ScriptManager installé et le WebMethod suivant:Lire le résultat d'un PageMethod dans un script jQuery

[WebMethod(EnableSession = true)] 
    public static string CheckSystemDefault(string _id) 
    { 
     int id = Convert.ToInt16(_id); 
     addressTypeRepository = new AddressTypeRepository(); 

     AddressType addressType = addressTypeRepository.GetById(id); 

     if (addressType.IsSystemDefault == true) 
      return "IsSystemDefault"; 
     else 
      return "IsNotSystemDefault"; 
    } 

Je l'utiliser pour vérifier si un objet a la IsSystemDefault propriété.

Dans le script, je main sur l'id de l'URL et que vous voulez évaluer le résultat:

var id = $(document).getUrlParam("id"); 
var check = PageMethods.CheckSystemDefault(id); 
if (check == "IsSystemDefault") { 
... 
} 
if (check == "IsNotSystemDefault") { 
... 
} 

Mais en conséquence, la variable « vérifier » est définie. Qu'est-ce que je dois changer?

+0

Lorsque vous déboguez avec un point d'arrêt dans la méthode Web, avez-vous atteint ce point de rupture, et fait la méthode web complet sans erreurs? –

+0

Je n'ai jamais atteint le point d'arrêt. – AGuyCalledGerald

Répondre

0

La syntaxe de mon script jQuery n'était pas correcte.

Il doit être le suivant:

<script type="text/javascript"> 

    jQuery(document).ready(function() { 

     var id = $(document).getUrlParam("id"); 

     PageMethods.CheckSystemDefault(id, function(result) { 
      if (result == "IsSystemDefault") 
       // do something 
      else 
       // do something 
     }); 

    });  

</script> 
0

Vous devez activer les méthodes de page dans le gestionnaire de scripts. Avez-vous spécifié EnablePageMethods = "true" dans l'élément de gestionnaire de scripts comme le montre le dernier attribut ci-dessous?

<ajaxToolkit:ToolkitScriptManager runat="Server" 
    EnableScriptGlobalization="true" 
    EnableScriptLocalization="true" 
    ID="ScriptManager1" 
    EnablePageMethods="true"/> 
+0

Oui, j'ai précisé cela. – AGuyCalledGerald