1

我正在设计一个web-applicationusingasp.net with c#并且我只是添加了一个validation codefor a textbox,看起来它已经足够执行了,但是当输入是nullor时执行应用程序时没有显示验证问题invalid

<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作为默认值。

4

3 回答 3

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。

于 2013-11-12T08:44:36.203 回答
0

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

<asp:TextBox ID="txtrandom" runat="server" ValidationGroup="Validation"></asp:TextBox>
于 2013-11-12T07:58:55.473 回答
0

你可以试试这个代码,我也在使用这个数字检查代码

 bool isnum;
 double numericval;
 isnum = double.TryParse(numval, out numericval);
 if (isnum)
 { return true; }
 else { return false; }
于 2013-11-12T08:30:11.543 回答