0

我的 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

不幸的是,它不允许导航,因为用户尚未填写必填字段。我该如何克服这个问题?请帮我。谢谢你。

4

2 回答 2

0

您似乎没有将 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" />
于 2012-04-12T05:53:55.653 回答
0

基本上每个控件都会发生这种情况,将 CausesValidation 属性设置为 True。

来自必填字段验证器和页面有效方法

Validate 方法遍历页面上所有启用的验证控件并对其进行验证。此事件在页面生命周期中的 Load 事件之后发生。

如果引发事件的控件指定了 ValidationGroup,则仅通过调用 Page.Validate(ValidationGroup) 重载方法来验证属于同一 ValidationGroup 的已启用验证器控件。如前所述,对于将 CausesValidation 属性设置为 true 的控件,这是自动完成的。

  1. 指定验证组只会在页面生命周期内得到验证

在后面的代码中你可以这样做

protected void button2_click(object sender, EventArgs e)
{
if(!page.isValid)
 //show errors
}
else
{
 // do some stuffs
}
于 2012-04-12T05:59:46.267 回答