【ASP.NET コントロール】妥当性検証・Validation (RequiredFieldValidator/RangeValidator編)

RequiredFieldValidator

主なプロパティ

 * InitialValue
  => 検証コントロールの初期値(初期値から変更されているかを判定される)

例1:数当て

* RequiredFieldValidator/RangeValidatorを使用してみる

コントロール構成

 * Label : 1
 * Button : 2 (回答用ボタンおよび再ゲーム用ボタン)
 * TextBox : 1
 * RequiredFieldValidator : 1
  + ControlToValidate : TextBoxを指定
  + Display : Dynamic
  + ErrorMessage : "Need to input a number!"
  + SetFocusOnError : True
 * RangeValidator : 1
  + ControlToValidate : TextBoxを指定
  + Display : Dynamic
  + ErrorMessage : "Choose a number between 1 and 50!!"
  + MaximumValue : 50
  + MinimumValue : 1
  + SetFocusOnError : True
  + Type : Integer

サンプル

Answer.vb

Public Enum Answer
    Correct
    Bigger
    Less
End Enum

Public Module AnswerExtensions
    <Extension()>
    Public Function ToAnswer(answer As Answer) As String
        Dim answers As New Dictionary(Of Answer, String) From _
            {
                {answer.Correct, "Correct!!"},
                {answer.Bigger, "Bigger!"},
                {answer.Less, "Less..."}
            }

        Return answers(answer)
    End Function
End Module

WebForm1.aspx

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    If Not Page.IsPostBack Then
        Dim random As New Random()
        ViewState("count") = 0
        ViewState("answer") = random.Next(50)
    End If
End Sub

Protected Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

    If Page.IsValid Then '★注目★「検証が妥当であればTrue、それ以外はFalseになる」
        Dim result As Answer
        ViewState("count") = ViewState("count") + 1

        If ViewState("answer") = Me.TextBox1.Text Then
            result = Answer.Correct
        ElseIf ViewState("answer") > Me.TextBox1.Text Then
            result = Answer.Bigger
        Else
            result = Answer.Less
        End If

        Me.Label1.Text = result.ToAnswer
    End If

End Sub

Protected Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
    Dim random As New Random()
    ViewState("count") = 0
    ViewState("answer") = random.Next(100)
End Sub

その他のValidation

RequiredFieldValidator/RangeValidator編

http://blogs.yahoo.co.jp/dk521123/25326361.html

RegularExpressionValidator編

http://blogs.yahoo.co.jp/dk521123/26142875.html

CustomValidator編

http://blogs.yahoo.co.jp/dk521123/26091356.html

あれこれ編

http://blogs.yahoo.co.jp/dk521123/26476406.html