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>

页面加载代码

。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 和 RemoveClass API 在运行时添加/删除 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 回答