4

私は何か間違ったことをしているに違いない。CustomValidator の ServerValidate メソッドを実行できないようです。

CustomValidator を含む Visual Basic ASP.NET ページを持っています...

<asp:TextBox ID="TextBox1" runat="server" />
<asp:CustomValidator ID="CustomValidator1" runat="server"
    ControlToValidate="TextBox1"
    ErrorMessage="Friendly message goes here."
    Display="Dynamic" />
<asp:Button ID="Button1" runat="server"
    Text="Submit"
    CausesValidation="True" />

このテストでは、検証を常に失敗するように設定しています...

Sub CustomValidator1_ServerValidate (オブジェクトとしての ByVal ソース、System.Web.UI.WebControls.ServerValidateEventArgs としての ByVal args) CustomValidator1.ServerValidate を処理します
    args.IsValid = False
サブ終了

しかし、ボタンがクリックされると、CustomValidator1_ServerValidate() メソッドは決して実行されません!

Protected Sub Button1_Click (System.Object としての ByVal 送信者、System.EventArgs としての ByVal e) は、Button1.Click を処理します。
    Page.Validate()
    If Page.IsValid Then
        'ここでコードを実行します!
    終了条件
サブ終了

そのコントロールを明示的に検証しても...

CustomValidator1.Validate() '何もしない?

私は何を間違っていますか?

4

4 に答える 4

9

プロパティを追加します。

 ValidateEmptyText="True"
于 2009-01-26T21:45:54.993 に答える
2

バリデータ コントロールの送信ボタンを同じ検証グループに配置していますか?

于 2009-01-26T21:46:18.923 に答える
1

私はそれがばかげた質問であることを知っています (またはそのように聞こえるかもしれません!)。しかし、実際にテキストボックスに値を入力または変更しましたか? テキストボックスの内容が変わらないと、バリデーターはトリガーされないと思います

于 2009-01-26T21:43:56.120 に答える
1

まず、上記のマークアップに OnServerValidate 属性がないようです。

次に、CustomValidator1_ServerValidate が Textbox1 の ServerValidate イベントのイベント ハンドラとして設定されていることを確認します。マークアップとコード ビハインドで検証メソッドの名前を変更したことがありましたが、イベント ハンドラ デリゲートに渡されたサブスクライブ メソッド名が IDE によって自動更新されませんでした。

于 2009-01-26T21:51:54.543 に答える