0

サーバー側の検証を取得しましたが、意味のあるメッセージをユーザーに返したい: たとえば、

「請求書の日付は X と Y の間でなければなりません」

X と Y は、今日の日付に基づく日付です。今のところ、年を比較するだけの簡単なバージョンをテスト用に作成しました。動的メッセージを表示するにはどうすればよいですか?

Protected Sub cvInvDate_ServerValidate(source As Object, args As ServerValidateEventArgs)

    If IsDate(args.Value) Then
        If Year(args.Value) < Year(Today) - 2 Or Year(args.Value) > Year(Today) + 1 Then
            args.IsValid = False
        Else
            args.IsValid = True
        End If
    Else
        args.IsValid = True
    End If
End Sub
4

1 に答える 1

0

ラベル コントロールを作成し、その中にエラー メッセージを設定できます。

ASPX の場合:

<asp:Label Id="ErrorMessage" runat="server" CssClass="error"></asp:Label>

コードビハインド:

Protected Sub cvInvDate_ServerValidate(source As Object, args As
    ServerValidateEventArgs)

    If IsDate(args.Value) Then
        If Year(args.Value) < Year(Today) - 2 Or Year(args.Value) > Year(Today) + 1 Then
            args.IsValid = False
        Else
            args.IsValid = True
        End If
    Else
        args.IsValid = True
    End If
    If args.IsValid Then
        ErrorMessage.Text = ""
    Else
        ErrorMessage.Text = "The Invoice Date must be between X and Y"
    End If
End Sub

または、 ValidationSummaryコントロールを確認することもできます。

ここでは、 ErrorMessageプロパティを設定し、新しいValidationSummaryコントロールを挿入するだけです。

<asp:CustomValidator ID="cvInvDate" runat="server" 
   CssClass="error" ControlToValidate="dpInvDate"
   OnServerValidate="cvInvDate_ServerValidate"  
   ErrorMessage="The Invoice Date must be between X and Y">*</asp:CustomValidator>

<asp:ValidationSummary
   HeaderText="Error Messages:"
   runat="server"/>

これはW3C Schoolsの例でもあります

編集: CustomValidator OnServerValidate イベントが失敗すると: args.IsValid = False、ErrorMessage が ValidationSummary に表示されます。

于 2013-08-01T18:20:38.830 に答える