在子页中触发“必需验证”时,母版页事件不起作用

本文关键字:必需验证 母版页 不起作用 事件 验证 | 更新日期: 2023-09-27 18:30:54

我的 ASP.net 网站中有一个母版页。在这里,我有一个按钮。它将导航到wecomePage。这是背后的代码。

protected void ImageButtonShortcut1_Click(object sender, ImageClickEventArgs e)
{
  Response.Redirect("welcomePage.aspx", true);
  //Server.Transfer("welcomePage.aspx", true);
}

现在我有一个继承在主上面的子页面。在子页面中,我使用了一个带有Required validation的文本框。

<asp:TextBox ID="TextBox_Model" runat="server">  </asp:TextBox>
          <asp:RequiredFieldValidator ID="RequiredFieldValidator6" runat="server" 
                         ControlToValidate="TextBox_Model" ErrorMessage="Model Required"></asp:RequiredFieldValidator> 

场景:当用户导航到上面的子页面并且没有在该文本框中输入任何内容时,他正在尝试点击母版页按钮以返回到WelcomePage

不幸的是,它不允许导航,因为用户尚未填写"必填"字段。我怎样才能克服这个问题?请帮助我。谢谢。

在子页中触发“必需验证”时,母版页事件不起作用

您似乎没有将ValidationGroup用于其相应按钮的RequiredFieldValidator。 尝试使用它

<asp:RequiredFieldValidator ID="RequiredFieldValidator6" runat="server" 
                ValidationGroup="WelcomePageTxtBox" ControlToValidate="TextBox_Model" ErrorMessage="Model Required"></asp:RequiredFieldValidator> 
        <asp:Button ID="Button2" runat="server" ValidationGroup="WelcomePageTxtBox" Text="Button" />
基本上,

每个控件都设置为"原因验证属性"设置为"True"。

从必填字段验证程序和页面有效方法

验证

方法循环访问所有已启用的验证控件 并验证它们。此事件发生在 Load 事件之后 在页面生命周期中。

如果引发事件的控件指定了验证组, 然后仅启用属于同一的验证程序控件 验证组通过调用 Page.Validate(ValidationGroup) 重载方法。如前所述 以前,对于具有 原因验证属性设置为 true。

  1. 指定验证组将仅在页面生命周期内进行验证

在代码后面你可以这样做

protected void button2_click(object sender, EventArgs e)
{
if(!page.isValid)
 //show errors
}
else
{
 // do some stuffs
}