0

J'ai un service Web qui valide certaines données de formulaire. Le service est un ScriptService, et je l'appelle du client. J'ai besoin d'afficher une fenêtre contextuelle modale si la validation échoue. Si l'utilisateur clique sur "OK" dans la fenêtre contextuelle modale, je veux publier et sauvegarder mes données. "Annuler" devrait leur permettre de fermer la fenêtre contextuelle modale et laisser l'utilisateur corriger les données, ce qui permet de resoumettre. Actuellement, la fenêtre modale s'affiche à chaque fois, quel que soit le résultat de la validation.Comment empêcher un affichage de ModalPopupExtender?

J'ai essayé d'appeler hide() et de retourner false, mais aucun n'a fonctionné. J'ai essayé d'aborder ce problème sous un angle différent en affectant la propriété TargetControlID de modalpopupextender à un bouton caché, puis en appelant show() sur le popup modal si la validation échouait, mais cela n'annulait pas la publication. Le modalpopup s'affiche pendant environ une seconde et la page est postée.

+0

Je pense que pour aider, nous allons avoir besoin de voir le code de la page. –

+0

Je suis d'accord avec Mitchel, nous devons voir le code –

Répondre

4

Donc, vous voulez faire quelque chose comme:

function ValidateInput() { 
    MyScriptService.ValidateInput({however you are passing form data}, OnValidateComplete); 
} 

function OnValidateComplete(response) { 
    if ({response is bad}) { 
     $find('<%= ModalPopupExtender.ClientID %>').show(); 
    } 
} 

Vous pouvez alors garder votre TargetControlID, OnOkScript, etc. tout de même. Peut-être qu'avec un peu de code nous pouvons réellement voir ce que vous faites.

+0

Excellente réponse. C'est presque comme si tu avais déjà fait ça :-) –

Questions connexes