1

.aspx

 <asp:TextBox ID="txtInvite" Width="170px" Height="20px" runat="server" 
                          Font-Size="Small" ></asp:TextBox>

                          <AjaxToolkit:TextBoxWatermarkExtender ID="tbexInvite" 
                          runat="server" SkinID="skinTextBoxWatermarkExtender" 
                          TargetControlID="txtInvite" WatermarkText="Email"></AjaxToolkit:TextBoxWatermarkExtender>

                          <asp:RequiredFieldValidator ID="rfvInvite" runat="server" 
                          Display="None" ValidationGroup="Inivitation" SetFocusOnError="true" 
                          ControlToValidate="txtInvite" ErrorMessage="Enter Email."></asp:RequiredFieldValidator>

                          <asp:RegularExpressionValidator ID="regExpInvite" runat="server" 
                          Display="None" ValidationGroup="Inivitation" SetFocusOnError="true" 
                          ValidationExpression="\s*\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*\s*" 
                          ControlToValidate="txtInvite" ErrorMessage="Invalid Email Format."></asp:RegularExpressionValidator>

 <div  class="ButtonLogin" style="margin-top:-27px;margin-right:143px;_margin-right:105px;">
                        <asp:UpdatePanel ID="UpdatePanel1" runat="server" >
                          <ContentTemplate>
                            <asp:Button ID="btnInvite" runat="server" CssClass="cssLoginButton blue" Text="Invite" ToolTip="Invite" ValidationGroup="Inivitation" CausesValidation="true" onclick="btnInvite_Click" />

                          </ContentTemplate>
                       </asp:UpdatePanel>
                 </div>
                      <asp:UpdateProgress ID="UpdateProgress1" runat="server" AssociatedUpdatePanelID="UpdatePanel1" DisplayAfter="0">
                           <ProgressTemplate>
                                  <asp:Image ID="Image1" ImageUrl="~/App_Themes/Lifetrons/images/progressbar.gif" AlternateText="Processing" runat="server" />
                           </ProgressTemplate>
                      </asp:UpdateProgress>

Page_loadコード

.CS

this.btnInvite.Attributes.Add("onclick", "this.disabled=true;" + Page.ClientScript.GetPostBackEventReference(this.btnInvite, "").ToString());

検証とOnlickメソッドを維持しながら、ボタンをクリックした後にボタンを無効にしたい。私はこの質問を参照します私の問題はこの質問と同じですが、私は私の問題を解決していません。どうすれば解決できますか?

4

3 に答える 3

6

コードビハインドPage_Loadイベントをいじくり回す必要はありません。ボタンコントロールに、次のスニペットを追加するだけです。

OnClientClick="if(Page_ClientValidate('Inivitation')){this.disabled=true;}"

あなたのボタンが次のように見えるように

<asp:Button ID="btnInvite" runat="server" CssClass="cssLoginButton blue" Text="Invite"
ToolTip="Invite" ValidationGroup="Inivitation" CausesValidation="true"
onclick="btnInvite_Click" OnClientClick="if(Page_ClientValidate('Inivitation')){this.disabled=true;}" />
于 2012-11-24T22:52:06.783 に答える
0

Button_Clickメソッドを使用してボタンを無効にできるはずです。最初の行を次のようにします。

Button.Enabled = False;

ただし、この方法には問題があります。ページの読み込みが速すぎたり、コードがフリーズしたりすると、ボタンが正しく無効になりません。検証が失敗したりタイムアウトしたりした場合は、メソッドの最後にあるボタンを再度有効にすることを忘れないでください。

あなたが試みるかもしれないもう一つの方法は、CSSを使ってそれを隠すことです。それは常に機能し、非常にシンプルなので、私はこれの大ファンです。その場でクラスを追加できるjQueryのようなテクノロジーが必要です。jQueryのAddClassおよびRemoveClassAPIを使用して、実行時にCSSクラスを追加/削除できます。こちらをご覧ください。 http://jqueryui.com/addClass/

于 2012-11-24T13:36:49.827 に答える
0

あなたはこのように使うことができます

<asp:Button ID="btnInvite" runat="server" CssClass="cssLoginButton blue" Text="Invite" ToolTip="Invite" ValidationGroup="Inivitation" CausesValidation="true" UseSubmitBehavior = False"onclick="btnInvite_Click" />
于 2016-06-06T09:47:32.433 に答える