所以建议我更新我的代码。
<asp:TextBox ID="txtStudent_Id" runat="server"></asp:TextBox></td>
<asp:RequiredFieldValidator runat="server"
ControlToValidate="txtStudent_Id"
ErrorMessage="Id is required"
ID="validator_ID"
ValidationGroup="Validation_ID">
</asp:RequiredFieldValidator>
<asp:RegularExpressionValidator id="RegularExpressionValidator1"
ControlToValidate="txtStudent_Id"
ValidationExpression="\d+"
Display="Static"
EnableClientScript="true"
ErrorMessage="Please enter numbers only" ValidationGroup="Validation_ID"
runat="server"/>
<asp:Button runat="server" Text="Submit" ID="btnSubmitStudent" ValidationGroup="Validation_ID" CausesValidation="true" OnClick="btnSubmitStudent_Click" />
addstudent.Student_Id =Convert.ToInt32(txtStudent_Id.Text);
既然我已经进入正则表达式验证器,它应该可以工作,但我仍然会得到同样的错误。
答案 0 :(得分:1)
不需要为您的错误提供解决方案。需要一个解决方案,为什么验证控件不起作用?以及如何解决这个问题?那我该怎么办?
主要内容
您在验证控件和按钮控件中错过了 ValidationGroup =“XXXXX”,因此允许使用服务器端代码,因此首先添加那和
尝试使用此asp:RegularExpressionValidator
仅允许整数值,所以如果您键入任何特殊字符串字符,则不允许
<asp:TextBox ID="txtStudent_Id" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator runat="server"
ControlToValidate="txtStudent_Id" ValidationGroup="XXXXX" EnableClientScript="True"
ErrorMessage="Id is required">
</asp:RequiredFieldValidator>
<asp:RegularExpressionValidator id="RegularExpressionValidator1"
ControlToValidate="txtStudent_Id"
ValidationExpression="\d+"
Display="Static"
EnableClientScript="true"
ErrorMessage="Please enter numbers only" ValidationGroup="XXXXX"
runat="server"/>
<asp:button ValidationGroup="XXXXX"></asp:button>
或
<asp:button ValidationGroup="XXXXX" CasusesValidation="true"></asp:button>
如果您尝试我的答案,那么不要担心输入字符串的格式不正确。错误。
<强>更新强>
请在按钮点击事件中尝试此操作。
Page.Validate();
if (Page.IsValid == false)
{
return;
}
//在此处调用您的代码
答案 1 :(得分:0)
<强>文本框强>
<asp:TextBox ID="txtStudent_Id"
runat="server"
ValidationGroup="VAlidation_Name">
</asp:TextBox>
<强>的RequiredFieldValidator 强>
您尚未将ID添加到RequiredFieldValidator以及ValidationGroup
<asp:RequiredFieldValidator runat="server"
Display="Dynamic"
ControlToValidate="txtStudent_Id"
ID="rfvStudent_Id"
ForeColor="Red"
ValidationGroup="VAlidation_Name"
ErrorMessage="Id is required">
</asp:RequiredFieldValidator>
按钮提交
<asp:Button ID="btnSubmit" Text="Submit"
runat="server"
ValidationGroup="VAlidation_Name" CausesValidation="true" />
默认情况下CausesValidation="true"
,但也请检查。
代码部分
addstudent.Student_Id =int.TryParse(txtStudent_Id.Text);
建议:
您可以使用AjaxToolKit Extender MaskedEdit使用户只输入整数。
<asp:MaskedEditExtender ID="txtEndDate_MaskedEditExtender" runat="server" ClearTextOnInvalid="True"
ClearMaskOnLostFocus="true" Enabled="True" Mask="9999999"
MaskType="Date" TargetControlID="txtStudent_Id"
ErrorTooltipEnabled="True">
<强>更新强>
void SubmitButton_Click(object sender, EventArgs e)
{
if (!Page.IsValid)
return;
// Do form stuff
}
同时检查EnableClientScript="True"
和Enabled="True"
<asp:RequiredFieldValidator runat="server"
Display="Dynamic"
ControlToValidate="txtStudent_Id"
ID="rfvStudent_Id"
EnableClientScript="True"
Enabled="True"
ForeColor="Red"
ValidationGroup="VAlidation_Name"
ErrorMessage="Id is required">
</asp:RequiredFieldValidator>