Проблема ASP.NET ModalPopupExtender

У меня проблема с расширением модального всплывающего окна. Что я делаю, так это назначаю его «скрытой» кнопке, а в методе нажатия другой кнопки я вызываю modal.Show(); Когда стоящая за задачей ничего не делает или выполняет небольшие операции, все работает отлично. Проблема в том, что когда я вызываю хранимую процедуру, она вообще не показывает модальность. Что я пытаюсь сделать, так это предотвратить клики пользователя и уведомить пользователя о том, что процесс запущен (т. Е. Они нажимают кнопку, и для получения всех запрошенных данных требуется несколько секунд).

Кто-нибудь сталкивался с этим раньше? Или есть какие-нибудь советы?

Заранее благодарю за любую помощь!

РЕДАКТИРОВАТЬ:

Вот пример кода (по запросу):

Страница .aspx:

   <asp:Button ID="btnStep1Hidden" runat="server" style="visibility: hidden;" />
   <asp:Button ID="Step1" Text="Pull ID Cards" OnClick="Step1_Click" UseSubmitBehavior="false" runat="server" CssClass="button_menu" />
   <ajax:ModalPopupExtender ID="mpeStep1" runat="server" PopupControlID="panProgress" TargetControlID="btnStep1Hidden" BackgroundCssClass="modalBackground"></ajax:ModalPopupExtender>

Код .aspx.cs:

    mpeStep1.Show();

    try
    {
        SqlCommand cmd = APP.DataManager.GetConnection().CreateCommand();
        cmd.CommandText = "EXEC [dbo].[sp_Populate_Initial_DataSet_New]"            cmd.Connection.Open();
        cmd.ExecuteNonQuery();
        cmd.Connection.Close();
    }
    catch
    {
        //Log, etc here
    }

Для этой хранимой процедуры нет .DataBinds(). Он просто заполняет таблицу, из которой другие процессы будут отображать данные.


person SlackerCoder    schedule 18.08.2009    source источник
comment
На самом деле не могу помочь вам, не видя кода.   -  person womp    schedule 18.08.2009
comment
Согласен, нужен пример кода. Из расплывчатого описания я бы предположил, что когда вы вызываете хранимую процедуру, она бросает вызов, возвращается раньше или по какой-то другой причине не доходит до строки, где она выполняет modal.Show(). Или, может быть, вы где-то делаете привязку данных(), которая сбрасывает видимость вашего всплывающего окна. Но нам нужно увидеть некоторый код, чтобы сузить его.   -  person Sterno    schedule 18.08.2009


Ответы (1)


Будет ли модальное всплывающее окно говорить что-то вроде «пожалуйста, подождите, обработка ...»? Вам нужно будет показать его на стороне клиента, а не использовать mpeStep1.Show(), иначе он не будет отображаться до тех пор, пока все на стороне сервера не будет завершено.

Вы используете ASP.NET Ajax? Если да, то не подойдет ли для этой задачи элемент управления UpdateProgress? http://msdn.microsoft.com/en-us/library/bb386421.aspx

person Town    schedule 19.08.2009
comment
Я как бы понял, что это была проблема, но я надеялся, что есть способ обойти это. Я хотел, чтобы страница была отключена во время выполнения более длительных операций, но я просто буду использовать UpdateProgress, как сейчас. Спасибо! - person SlackerCoder; 19.08.2009
comment
Я никогда не использовал его сам, но это должно хорошо соответствовать всем требованиям для того, что вы хотите сделать. encosia.com/downloads/postback-ritalin - person Town; 19.08.2009