C# 单击按钮时使用ValidationGroup进行验证
我试图为我的按钮编写代码,在向导中单击下一个按钮时检查“信息组”中的验证控件 单击“下一步”按钮时,它将转到向导中的下一步,跳过验证控件。如果所需字段为空或具有无效值,则不应继续,但确实如此。在我将它们添加到validationGroup之前,我已经完成了这项工作,但是我需要使用validationGroup,因为我需要执行客户端验证和服务器端验证(当单击按钮时)。下面是我的验证代码和单击“下一步”按钮时的隐藏代码:C# 单击按钮时使用ValidationGroup进行验证,c#,asp.net,validation,code-behind,C#,Asp.net,Validation,Code Behind,我试图为我的按钮编写代码,在向导中单击下一个按钮时检查“信息组”中的验证控件 单击“下一步”按钮时,它将转到向导中的下一步,跳过验证控件。如果所需字段为空或具有无效值,则不应继续,但确实如此。在我将它们添加到validationGroup之前,我已经完成了这项工作,但是我需要使用validationGroup,因为我需要执行客户端验证和服务器端验证(当单击按钮时)。下面是我的验证代码和单击“下一步”按钮时的隐藏代码: <tr> <td><asp:Label
<tr>
<td><asp:Label ID="LabelName" runat="server" Text="Name:" CssClass="LabelText"></asp:Label></td>
<td><asp:TextBox ID="TextBoxName" runat="server" CssClass="TextBox" TextMode="SingleLine"></asp:TextBox></td>
<td>
<asp:RequiredFieldValidator ID="nameRequiredFieldValidator" runat="server" ErrorMessage="Please enter your name."
CssClass="errorMessage"
ControlToValidate="TextBoxName"
Text="*"
SetFocusOnError="true"
Display="Dynamic"
ValidationGroup="infoGroup"></asp:RequiredFieldValidator>
<asp:RegularExpressionValidator ID="nameRegularExpressionValidator" runat="server" ErrorMessage="Please enter a valid name."
ControlToValidate="TextBoxName"
ValidationExpression="[a-zA-Z\.\'\-_\s]{1,40}"
Text="*"
CssClass="errorMessage"
SetFocusOnError="true"
Display="Dynamic"
ValidationGroup="infoGroup"></asp:RegularExpressionValidator>
</td>
</tr>
<tr>
<td><asp:Label ID="LabelEmail" runat="server" Text="E-mail:" CssClass="LabelText"></asp:Label></td>
<td><asp:TextBox ID="TextBoxEmail" runat="server" CssClass="TextBox"></asp:TextBox></td>
<td>
<asp:RequiredFieldValidator ID="emailRequiredFieldValidator" runat="server" ErrorMessage="Please enter your email address."
CssClass="errorMessage"
ControlToValidate="TextBoxEmail"
Text="*"
SetFocusOnError="true"
Display="Dynamic"
ValidationGroup="infoGroup"></asp:RequiredFieldValidator>
<asp:RegularExpressionValidator ID="emailRegularExpressionValidator" runat="server" ErrorMessage="Please enter a valid email address."
ControlToValidate="TextBoxEmail"
ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"
Text="*"
CssClass="errorMessage"
SetFocusOnError="true"
Display="Dynamic"
ValidationGroup="infoGroup"></asp:RegularExpressionValidator>
</td>
</tr>
protected bool Wizard1_NextButtonClick(object sender, WizardNavigationEventArgs e)
{
Page.Validate("infoGroup");
if (Page.IsValid)
{
return true;
}
else
{
return false;
}
}
受保护的bool向导1_NextButtonClick(对象发送器,向导导航目标)
{
页面验证(“信息组”);
如果(第页有效)
{
返回true;
}
其他的
{
返回false;
}
}
验证组与允许客户端和服务器验证无关。您可以在两个位置进行验证,而无需验证组。你为什么这么想?试着把e.Cancel
放在你的else语句中。我在你发布的html中没有看到Wizard1\u NextButton按钮控件,请发布完整的codetrue,检查asp按钮标记是否也有ValidationGroup=“infoGroup”属性