2009-09-30 5 views
1

J'ai un bouton qui a modalpopupextender qui fonctionne absolument bien aucun problème du tout, mais avant le modalpopup apparaît je veux valider le contrôle de la zone de texte si elle n'est pas valide, alors modalpopup ne devrait pas apparaître autre sage, il devrait fonctionner comme d'habitude .. est-ce que quelqu'un a une idée.Problème avec ajax modal popup extender

Répondre

0

Quelque chose que j'ai fait dans le passé est manuellement afficher/cacher le popup modal. Je réalise le contrôle de ModalPopupExtender nécessite une cible, vous aurez donc besoin d'une cible fictive qui restera inactive:

<asp:LinkButton id="btnDummyTarget" runat="server" /> 
<asp:Button 
    id="btnActualButtonTiedToValidation" 
    ValidationGroup="SomeValidationGroup" 
    OnClick="MyButton_Click" 
    runat="server" /> 

<ajaxToolkit:ModalPopupExtender 
    id="mpeMyPopup" 
    PopupControlID="pnlSomePanelToShow" 
    TargetControlID="btnDummyTarget" 
    runat="server" /> 

Ensuite, dans votre codebehind vous pouvez effectuer les opérations suivantes:

protected void MyButton_Click(object sender, EventArgs e) 
{ 
    if(Page.IsValid) 
     mpeMyPopupExtender.Show(); 
} 

Ceci est également pratique pour supprimer les boîtes de dialogue de confirmation.

+0

im déjà assignant ID de contrôle cible, et im aussi l'écriture même logique dans le code derrière, mais encore avoir des problèmes dans le scénario mentionné ci-dessus –

3

Nous utilisons la fonction suivante. Sur le bouton, vous pouvez appeler cette fonction. Cela va valider le groupe de validation qui est passé à cette fonction et c'est le travail qui fera apparaître la fenêtre modale sinon l'erreur de validation apparaîtra.

function ClientSideValidate(modalId,group) 
{ 
    var modal = $find(modalId); 

    Page_ClientValidate(group); 

    if(!Page_IsValid) 
    { 
     modal.show(); 
    } 
} 
+0

Avec cette pop modale de code ne vient pas pour la première fois lorsque les chargement de la page. –