0

モーダル ポップアップ エクステンダーに問題があります。私がやっているのは、それを「隠し」ボタンに割り当て、別のボタンのクリックメソッドで 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() はありません。他のプロセスがデータを表示するテーブルにデータを入力するだけです。

4

1 に答える 1

0

モーダル ポップアップは、「お待ちください、処理中です...」のようなメッセージを表示しますか? mpeStep1.Show() を使用するのではなく、クライアント側で表示する必要があります。それ以外の場合は、サーバー側の処理が完了するまで表示を回避できません。

ASP.NET Ajax を使用していますか? もしそうなら、UpdateProgress コントロールはタスクに適していませんか? http://msdn.microsoft.com/en-us/library/bb386421.aspx

于 2009-08-19T14:35:32.587 に答える