1

web-applicationを使用して設計してasp.net with c#おり、 を追加したvalidation codeところtextboxです。実行するのに十分なようですが、入力がnullまたはのときにアプリケーションを実行すると、検証の問題は示されませんでし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

このコードを試すことができます。数値チェックのこのコードも使用しています

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

次のように検証グループをテキストボックスに割り当てます。

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