質問

私は4から13の範囲を指定しようとします。しかし、エラーを保持します。どうやってこれを解決できますか。これが私のコードです:


     <asp:TextBox ID="TextBox2" runat="server" ValidationGroup="Group1"></asp:TextBox>
     <asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server" 
                ControlToValidate="TextBox2" ErrorMessage="กรุณากรอก Password" ForeColor="Red" 
                ValidationGroup="Group1">*</asp:RequiredFieldValidator>
     <asp:RangeValidator ID="RangeValidator1" runat="server"
                ControlToValidate="TextBox2" 
                ErrorMessage="Password ต้องมีความยาวตั้งแต่ 4-13 ตัวอักษร" ForeColor="Red" 
                MaximumValue="13" MinimumValue="4" Type="String" EnableClientScript="false">*</asp:RangeValidator>
.

これはボタンのコードです:


    protected void Button2_Click1(object sender, EventArgs e)
    {
        try
        {
            if (Page.IsValid)
            {

            }
            else
            {
                Insert();
            }
        }
        catch (Exception ex)
        {

        }
    }
.

あらゆる助けがあります。

役に立ちましたか?

解決

RangeValidatorは、値の長さではなく、コントロールの値を検証します。文字列比較の場合は "13"が "4"より小さいので、 "Max

LegureExpressionValidatorを使用して入力長を確認する必要があります。

 <asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server"
            ControlToValidate="TextBox2" 
            ErrorMessage="Password ต้องมีความยาวตั้งแต่ 4-13 ตัวอักษร" ForeColor="Red" 
            ValidationExpression="^.{4,13}$" ValidationGroup="Group1" EnableClientScript="false">*</asp:RegularExpressionValidator>
.

他のヒント

整数型の値にRangeValidatorを使用しているときに、型Integerを設定します。

<asp:RangeValidator ID="RangeValidator1" runat="server"
                ControlToValidate="TextBox2" 
                ErrorMessage="Password ต้องมีความยาวตั้งแต่ 4-13 ตัวอักษร" ForeColor="Red" 
                MaximumValue="13" MinimumValue="4" Type="Integer" EnableClientScript="false">*</asp:RangeValidator>
.

しかし、私はあなたがパスワードフィールドを使ってRangeValidatorを使用していることを驚かせています。この場合、ユーザーは4-13の間に値を入れることを制限しています。 あなたはおそらく入力の長さをチェックしたいと思うでしょう。正規表現検証済みを使用しています。

<asp:RegularExpressionValidator ID="RegexVal" ValidationExpression="^.{4,13}$"  runat="server" ErrorMessage="Password must be 4-13 character long" ControlToValidate="TextBox2"  />
.

現在確認しようとしている指定されたデータ型は、stringに設定されています。「4」が「13」より大きい、そのため、そのようなエラーが発生します。コントロール内のtype引数を整数に変更して動作する必要があります。

型は文字列

ではなく整数であるべきです
<asp:RangeValidator ID="RangeValidator1" runat="server"
            ControlToValidate="TextBox2" 
            ErrorMessage="Password ต้องมีความยาวตั้งแต่ 4-13 ตัวอักษร" ForeColor="Red" 
            MaximumValue="13" MinimumValue="4" Type="Integer" EnableClientScript="false">*
</asp:RangeValidator>
.

Googleは以下のエラーメッセージを翻訳しました。 パスワードは4~13文字で構成されている必要があります。

Pashapash '答え https://stackoverflow.com/a/a/21060857/263003 は正しいものです

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top