asp.net中文本框中的验证问题

时间:2013-11-12 07:19:31

标签: c# asp.net

我正在使用web-application设计asp.net with c#而我刚刚为validation code添加了textbox,似乎它已经足够好执行,但没有验证问题输入为nullinvalid时执行应用程序时显示。

<asp:ValidationSummary ID="ValidationSummary1" runat="server" 
    ShowMessageBox="True" DisplayMode="BulletList" 
    HeaderText="Validation issues" ShowSummary="False"    ValidationGroup="Validation"/>

    <asp:TextBox ID="txtrandom" runat="server"></asp:TextBox>
    <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server"  
                                ErrorMessage="Enter the Randomly generated numbers" 
                                ControlToValidate="txtrandom" Display="None" 
                                ValidationGroup="Validation" SetFocusOnError="true"  >
    </asp:RequiredFieldValidator>

    <asp:RegularExpressionValidator ID="RegularExpressionValidator2"  
                                    runat="server" ErrorMessage="Input should be in number" 
                                    ValidationExpression="^[0-9]+$" 
                                    ControlToValidate="txtrandom" 
                                    Display="None" 
                                    ValidationGroup="Validation" 
                                    SetFocusOnError="true" >
    </asp:RegularExpressionValidator>

backend(c#)我有这些代码行

int random = 0;
bool isValidInt = int.TryParse(txtrandom.Text, out random);
for (int i = 0; i < random; i++)
{
    //other codes
}

这些代码行是否会影响validation或仅syntactical error?感谢任何帮助。据我所知,他的文本框将0作为默认值。

3 个答案:

答案 0 :(得分:1)

问题在于验证组。如果您没有使用验证组,一切都会有效,但如果您指定了验证组,则必须在按钮点击事件或类似事件中启用该组。

查看我的代码。它工作正常。

    <div>
    <asp:ValidationSummary ID="ValidationSummary1" runat="server" 
    ShowMessageBox="True" DisplayMode="BulletList" 
HeaderText="Validation issues" ShowSummary="false" ValidationGroup="one" />

<asp:TextBox ID="txtrandom" runat="server" ></asp:TextBox>
 <asp:TextBox ID="TextBox1" runat="server" ></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server"  
                            ErrorMessage="Enter the Randomly generated numbers" Display="None"
                            ControlToValidate="txtrandom" ValidationGroup="one" >
</asp:RequiredFieldValidator>
    <asp:RegularExpressionValidator ID="RegularExpressionValidator2"  
                                runat="server" ErrorMessage="Input should be in number" 
                                ValidationExpression="^[0-9]+$" 
                                ControlToValidate="txtrandom" 
                                Display="None" 
                                ValidationGroup="one" 
                                SetFocusOnError="true" >
</asp:RegularExpressionValidator>
<asp:Button ID="test" runat="server" Text="Submit" ValidationGroup="one" />
</div>

并且可以在帖子后面调用验证组。所以错误消息不会像正常验证那样显示onfocouschange。

答案 1 :(得分:0)

将验证组分配到文本框,如下所示:

<asp:TextBox ID="txtrandom" runat="server" ValidationGroup="Validation"></asp:TextBox>

答案 2 :(得分:0)

您可以尝试使用此代码,我也使用此数字检查代码

 bool isnum;
 double numericval;
 isnum = double.TryParse(numval, out numericval);
 if (isnum)
 { return true; }
 else { return false; }