2010-04-22 7 views
0

J'ai posté une question similaire à ce problème et pourrait y répondre moi-même, mais la solution ne me satisfait pas pleinement.Comment obtenir le résultat de jQuery PageMethods fonction

En utilisant Asp.Net/C#, j'ai un bouton qui va effectuer du code côté serveur si passe une validation côté client. Je veux le faire de cette façon parce que pour mon application, je pense que cela convient le mieux.

<asp:Button runat="server" ID="addBtn" Text="Add" OnClientClick="if(validateEntry()== false){return false;}" OnClick="addBtn_Click"/> 

J'appelle une fonction jQuery nommée validateEntry() qui utilise PageMethods pour obtenir des données à partir du serveur. Les données sont nécessaires pour le processus de validation.

function validateEntry() { 

PageMethods.CheckEntry(params, function(result){//Evaluate result of PageMethods} 
} 

Mon problème est que je ne sais pas comment gérer correctement les données reçues de PageMethods. Je suis seulement capable de les remettre à une sous-fonction qui peut les utiliser. Mais j'ai besoin des données en sorte de variable pour effectuer un retour faux.

Répondre

0

J'ai publié un exemple en cours comment consommer des méthodes de page de jquery here.

+0

Merci, mais ma méthode de page fonctionne aussi. Je sais que la question est stupide, mais je ne sais pas comment gérer le résultat donné par la méthode page. Fondamentalement, je veux utiliser le résultat pour rendre la méthode validateEntry() return false. Si la réponse se trouve dans votre exemple affiché, s'il vous plaît pardonnez et expliquez, je ne comprends pas ... – AGuyCalledGerald

0

J'ai élaboré une solution, mais je serais reconnaissant pour les plus faciles.

J'utilise un champ caché sur la page et dans la sous-fonction, j'écrire le résultat de la méthode de la page dans le champ:

$("#pageMethodsResultField").val(result); 

Ensuite, je peux lire le résultat du champ Utilisez-le dans la fonction principale.

0

Étant donné que PageMethods.CheckEntry exécute la fonction passée sans délai, vous pouvez le faire:

function validateEntry() { 
    var foo; 
    PageMethods.CheckEntry(params, function(result){ 
    foo = "bar"; 
    }); 
    alert(foo); 
} 

Si vous essayez et « foo » est pas affichée, la fonction est retardée et vous avez besoin de repenser pour ce faire ou fournir plus d'informations afin que nous puissions vous aider.