2017-09-13 11 views
0

を有効にした後に有効にする私はASP.NETを使用して開発しています。 ここでは、ボタンAをクリックすると(ボタンAのテキストが「開始」)、ボタンAのテキストが「処理中です...しばらくお待ちください」ボタンAに変わりますクリックできません。その後、ストアドプロシージャを実行します(ストアドプロシージャの所要時間は1分です)。ストアドプロシージャが終了すると、ボタンAのテキストが「開始」に変わり、ボタンAがクリック可能になります。ボタンのテキストを変更し、ボタン(asp.net)

私は、以前に保存されたという手順を試してみました、私はこれらのコードを追加:

ButtonA.Text = "processing...please wait"; 
ButtonA.Enabled = false; 

そしてストアドプロシージャの後、私はこれらのコードを追加:

ButtonA.Text = "Start"; 
ButtonA.Enabled = true; 

しかし、結果はAボタン上のテキストです変更されず、ストアドプロシージャの実行中もボタンAはクリック可能です。 誰も私が望むものを達成する方法を教えてもらえますか?ありがとう。

それから私は以下のように私のaspxファイルを編集します。

<asp:ScriptManager ID="MainScriptManager" runat="server"/> 
    <asp:UpdatePanel ID="pnlHelloWorld" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="true"> 
     <ContentTemplate> 
    <asp:Button ID="ButtonA" runat="server" OnClick="ButtonA_Click" Text="Start" /> 
     </ContentTemplate> 
    <Triggers> 
    <asp:AsyncPostBackTrigger ControlID="ButtonA" EventName="Click"/> 
    </Triggers> 
    </asp:UpdatePanel> 

しかし、ボタンのテキストは同じままで、ボタンはまだクリック可能です。

+1

これは動作しません。 UIは、ページのロードが完了してクライアントに送信された後に1回だけ更新されます。それは間に更新されません。そのようなボタンのテキストを変更したい場合は、Ajaxを使用する必要があります。 – VDWWD

+0

Ajaxを使用してその方法を教えてもらえますか?私はAjaxを初めて使う人です。ありがとうございます –

+0

Ajaxを使用してこれを達成できます。そうするために、コンポーネントを 'UpdatePanel'コントロールの中に入れてください。あなたの場合は、UpdatePanelの中​​に 'Buttons'を入れます。したがって、 'ButtonA'をクリックするたびにリクエストが処理され、サーバーからの応答が返されます。' UpdatePanel'内のコントロールだけが更新されることに注意してください。 –

答えて

0

Ajaxを使用して要件を満たすことができます。 Ajaxを使用すると、ページの一部をリフレッシュできます。 UpdatePanelの中にButtonAを入れると、期待どおりに動作するはずです。

以下のサンプルコードを参考にして参照できます。

webpage.aspxコード

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title>Hello, world!</title> 
</head> 
<body> 
    <form id="form1" runat="server"> 
     <asp:ScriptManager ID="MainScriptManager" runat="server" /> 
     <asp:UpdatePanel ID="pnlHelloWorld" runat="server"> 
      <ContentTemplate> 

       <asp:Button runat="server" ID="ButtonA" OnClick="btnHelloWorld_Click" Text="Update label!" /> 
      </ContentTemplate> 
     </asp:UpdatePanel> 
    </form> 
</body> 
</html> 


C#のコードに役立ちます

protected void btnHelloWorld_Click(object sender, EventArgs e) 
    { 
     //Before Procedure call 
     ButtonA.Text = "processing...please wait"; 
     ButtonA.Enabled = false; 

     //Call Procedure 
     procedure .... 
     //After Prodedure call 
     ButtonA.Text = "Start"; 
     ButtonA.Enabled = true; 
    } 


希望、ありがとう。

+0

ScriptManagerとUpdatePanelパーツを追加しましたが、ボタンをクリックしても何も起こりません。何が問題なのか分かりますか?ありがとうございました。 –

+0

コードを更新してください。 –

+0

私はあなたのソリューションと他の人のソリューションを参照しましたが、それでも動作することはできません。私は既に私のコードを更新しました。 –

関連する問題