2011-10-01 3 views
0

J'ai utilisé le contrôle modalpopup dans mon application web et après l'avoir ouvert quand j'ai cliqué sur le bouton ok j'ai fait appel à la fonction WCF pour faire face à certaines exigences fonctionnelles. Actuellement, le comportement comme, quand je clique sur le bouton OK ModalPopup est resté ouvert jusqu'à ce que mon opération WCF soit terminée et quand il sera terminé, il sera fermé parce que j'écris logique pour cacher le code derrière le fichier et mon code selon ci-dessousProblème avec ModalPopup dans asp.net/C#

<asp:Panel ID="PanelCheck" runat="server" CssClass="modalPopup" SkinID="Custom"> 
     *Panel content here..* 
     <asp:Button ID="OkButton" runat="server" Text="Create" OnClientClick="return 
     ValidateSeconds();" OnClick="OkButton_Click" /> 

    </asp:Panel> 

<cc1:modalpopupextender id="MPE" runat="server" targetcontrolid="lnkTemp" 
popupcontrolid="PanelCheck" backgroundcssclass="modalBackground" /> 

Code derrière

protected void OkButton_Click(object sender, EventArgs e) 
    { 
     if (Page.IsValid) 
     { 
      try 
      { 
       MPE.Hide(); 

        *Logic to deal with WCF call..* 

       } 
      } 
      catch (Exception ex) 
      { 
       throw ex; 
      } 

      timerInstance.Enabled = true; 
     } 
    } 

maintenant ce que je demande est que je dois fermer ModalPopup d'abord, puis de manière asynchrone, il doit prendre W Appel des FC Je n'ai trouvé aucun moyen de le faire, s'il vous plaît, aidez-moi si cette question a un sens.

Merci à l'avance

Répondre

0

je crois que vous pouvez cacher ModalPopupExtender sur le côté client droit après avoir cliqué sur le bouton « Créer »:

<asp:Button ... OnClientClick="return ValidateSeconds();" /> 

function ValidateSeconds() { 
    //your code 
    $find('MPE').hide(); 
    //your code 
} 

Voir aussi:

How to Show/Hide a ModalPopupExtender using Javascript

+0

Je peux cacher le modalpopup en utilisant javascript, mais mon problème est de faire appel wcf asynchrone si ot son interface utilisateur peut fonctionner telle quelle –

+0

Effectuez le rappel ajax et appelez le service WCF de manière asynchrone via jQuery.ajax, par exemple (ne faites plus de publication/ne gérez pas le clic du bouton). – Mikhail

+0

Hey Mikhail j'ai fait appel WCF asynchrone mais n'importe quelle autre action de l'interface utilisateur attendra jusqu'à la fin de cette opération pouvez-vous être plus précis votre idée avec moi. –

Questions connexes