输入字符串格式不正确且Requiredfieldvalidator无法正常工作

时间:2014-01-04 07:01:09

标签: c# asp.net requiredfieldvalidator

所以建议我更新我的代码。

文本框:

 <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);

既然我已经进入正则表达式验证器,它应该可以工作,但我仍然会得到同样的错误。

2 个答案:

答案 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>