Проблема с ModalPopup в asp.net/C#

Я использовал элемент управления modalpopup в своем веб-приложении, и после его открытия, когда я нажимаю кнопку «ОК», у меня есть вызов функции WCF для выполнения некоторых функциональных требований.

В настоящее время такое поведение, как когда я нажимаю кнопку «ОК», ModalPopup остается открытым до тех пор, пока моя операция WCF не будет завершена, и когда она будет завершена, она будет закрыта, потому что я записываю логику, чтобы скрыть код за файлом, и мой код, как показано ниже

  <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" />

код позади

    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;
        }
    }

Теперь мне нужно сначала закрыть modalpopup, а затем асинхронно он должен сделать вызов WCF. Я не смог найти никаких способов сделать это, пожалуйста, помогите мне, если этот вопрос имеет смысл.

Заранее спасибо


person Arun Rana    schedule 01.10.2011    source источник


Ответы (1)


Я считаю, что вы можете скрыть ModalPopupExtender на стороне клиента сразу после нажатия кнопки «Создать»:

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

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

См. также:

Как показать/скрыть ModalPopupExtender с помощью Javascript

person Mikhail    schedule 01.10.2011
comment
Я могу скрыть modalpopup с помощью javascript, однако моя проблема заключается в том, чтобы заставить wcf вызывать асинхронно, чтобы другой пользовательский интерфейс мог работать как есть. - person Arun Rana; 01.10.2011
comment
Выполните обратный вызов ajax и вызовите службу WCF асинхронно, например, через jQuery.ajax (больше не делать обратную передачу/не обрабатывать нажатие кнопки). - person Mikhail; 01.10.2011
comment
Привет, Михаил, у меня есть вызов WCF асинхронно, но любое другое действие пользовательского интерфейса будет ждать завершения этой операции, не могли бы вы уточнить свою идею со мной. - person Arun Rana; 03.10.2011