【问题标题】:Postback not being triggered on Button Click when using Validators使用验证器时未在按钮单击上触发回发
【发布时间】:2011-03-22 08:25:43
【问题描述】:

单击“LookupButton”时未触发服务器单击事件。奇怪的是,这段代码可以在我们的开发服务器上运行,但不能在 QA 上运行。如果我从 Lookup Button ValidationGroup 属性中删除“LookupValidationGroup”,页面会回发,但是我的验证器不起作用。我可以明确地在服务器端进行验证,但我认为我不需要这样做。

没有显示错误。我还使用 aspnet_regiis -i 命令重新安装了 .net 3.5。

感谢您提供的任何帮助或提示...

 <table>
<tr>
    <td><label for="CRCIDTextBox">CRC ID</label> </td>
    <td><asp:TextBox ID="CRCIDTextBox" runat="server" MaxLength="50" CssClass="RegisterInputTextBox" Columns="10"></asp:TextBox></td>
    <td>
        <asp:RequiredFieldValidator ID="CRCIDRequired" runat="server" ControlToValidate="CRCIDTextBox" EnableClientScript="true"
            Display="Dynamic" ErrorMessage="CRC ID is required." ToolTip="CRC ID is required." ValidationGroup="LookupValidationGroup" 
            CssClass="ValidationError" SetFocusOnError="true">
        </asp:RequiredFieldValidator>
        <asp:RegularExpressionValidator ID="CRCIDRegularExpressionValidator" runat="server" ControlToValidate="CRCIDTextBox" EnableClientScript="true"
        Display="Dynamic" ErrorMessage="CRC ID format is invalid. Please enter only numbers." ValidationExpression="^\d+$" ValidationGroup="LookupValidationGroup" 
        CssClass="ValidationError" SetFocusOnError="true">
    </asp:RegularExpressionValidator>        
    </td>
</tr>
<tr>
    <td><label for="ZipTextBox">Zip Code</label></td>
    <td><asp:TextBox ID="ZipTextBox" runat="server" MaxLength="50" CssClass="RegisterInputTextBox" Columns="10"></asp:TextBox></td>
    <td>
        <asp:RequiredFieldValidator ID="ZipRequired" runat="server" ControlToValidate="ZipTextBox" EnableClientScript="true"
            Display="Dynamic" ErrorMessage="Zip Code is required." ToolTip="Zip Code is required." ValidationGroup="LookupValidationGroup" 
            CssClass="ValidationError" SetFocusOnError="true">      
        </asp:RequiredFieldValidator>        
    </td>
</tr>
<tr>
    <td>&nbsp;</td>
    <td><asp:Button ID="LookupButton" runat="server" Text="Lookup" OnClick="LookupButton_OnClick" ValidationGroup="LookupValidationGroup" UseSubmitBehavior="true" /></td>
    <td><asp:LinkButton ID="NoSiteIDLinkButton" runat="server" OnClick="NoSiteIDLinkButton_OnClick" CausesValidation="false">Do not have a CRC ID?</asp:LinkButton></td>        
</tr>

【问题讨论】:

  • 刚刚将您的代码复制到一个新网站并按预期进行验证,如果验证成功,则点击回发方法。还有什么可以帮助的吗?
  • 这很奇怪,相同的代码可以在不同的服务器上运行。
  • 您是否在其他浏览器中尝试过?它适用于 Chrome、Firefox、IE 吗?浏览您的 QA 服务器时是否有任何 JavaScript 成功运行?
  • 还有一个问题 - 如果您保持原样并输入一些无效数据,验证是否真的显示出来?还是那也坏了?

标签: .net asp.net postback


【解决方案1】:

客户端脚本是否触发,从而阻止回发到服务器。我注意到您看到的验证器上有 EnableClientScript="true"。

【讨论】:

    【解决方案2】:

    我看到您的 ID="LookupButton" 按钮没有 CausesValidation="false"。

    您可能会发现 ID="NoSiteIDLinkBut​​ton" Button 确实有效,因为它具有此参数

    【讨论】:

      猜你喜欢
      • 2018-04-23
      • 2012-09-12
      • 1970-01-01
      • 1970-01-01
      • 2017-06-06
      • 1970-01-01
      • 2020-03-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多