【问题标题】:Required Field Validator always shows the error message必填字段验证器始终显示错误消息
【发布时间】:2013-10-16 09:09:29
【问题描述】:

我有这个代码:

<asp:TextBox ID="txtFirstName" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="rvFirstName" runat="server" 
 ErrorMessage="Enter First Name" 
ForeColor="Red" ControlToValidate="txtFirstName" 
SetFocusOnError="True"></asp:RequiredFieldValidator>

问题在于,不仅在单击提交按钮后,每次加载页面时都会显示错误消息。我希望它仅在用户尝试单击“下一步”(提交)按钮时才显示(它应该如何工作)。

如果这是相关的:上面的代码放在一个 UserControl 中,该 UserControl 包含在另一个 UserControl 中(“下一步”按钮在这里),然后包含在 MultiView 的视图中。

任何想法

【问题讨论】:

  • 只是为了澄清第一次加载页面时会发生这种情况吗?您的页面中是否有任何控件导致回发?

标签: c# asp.net validation


【解决方案1】:

在其他按钮上使用 causeValidation 为 false。

并显示为动态。

Display="Dynamic" 要求提交验证器

<asp:RequiredFieldValidator ID="rvFirstName" runat="server" Display="Dynamic"
     ErrorMessage="Enter First Name" ForeColor="Red" 
     ControlToValidate="txtFirstName" SetFocusOnError="True">
</asp:RequiredFieldValidator>

【讨论】:

  • 我对任何按钮都没有问题。页面加载时显示错误消息
  • 或者您可以使用 ValidationGroup 进行相关控件(包括按钮)
  • 试过你说的所有东西。没有任何变化
【解决方案2】:

最好的方法是在Button和RequiredFieldValidator上设置ValidationGroup。

【讨论】:

    【解决方案3】:

    请查看下面的参考资料,您的页面中是否有类似 Page.Isvalid 的内容?

    参考:Required Field Validator, displaying on initial page load

    【讨论】:

    • 不,我在提交按钮的单击事件上检查 Page.IsValid 而不是在页面加载时检查,我不在其他任何地方检查它
    • 你能发布你的页面加载事件吗?
    【解决方案4】:
    <asp:ValidationSummary ID="ValidationSummary1" runat="server" 
            ShowMessageBox="True" DisplayMode="BulletList" 
            HeaderText="Validation issues" ShowSummary="False" ValidationGroup="Validation"/>
    
    
    <asp:TextBox ID="txtFirstName" runat="server"></asp:TextBox>
    
       <asp:RequiredFieldValidator ID="rvFirstName" runat="server" ErrorMessage="Enter First Name" ForeColor="Red" ControlToValidate="txtFirstName" SetFocusOnError="True" ValidationGroup="Validation"></asp:RequiredFieldValidator>
    

    添加上面的代码并修改你的Required Field Validator

    【讨论】:

    • 所以你的建议是使用ValidationGroups?我认为这是一个问题,因为 ValidationSummary 在页面中,按钮在用户控件中,TextBox + RequiredFieldValidator 在不同的用户控件中。
    【解决方案5】:

    为RequiredFieldValidator 和下一步按钮设置“ValidationGroup”

    【讨论】:

    • 验证器和按钮在不同的文件中
    【解决方案6】:

    删除 SetFocusOnError="True" 并添加 display="Dynamic" 而不是 SetFocusOnError="True" em> 在您的 requiredfieldvalidation 中并在您的页面中设置 casevalidtion="false"

    【讨论】:

    • 我做到了,没有任何改变
    【解决方案7】:
    1. 01.如果您想在页面加载时显示消息。 protected void Page_Load(object sender, EventArgs e) { 如果(!Page.IsPostBack) { Page.Validate(); } }

      1. 显示="动态"

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-04-07
      • 1970-01-01
      • 1970-01-01
      • 2012-05-11
      • 1970-01-01
      • 2011-10-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多