3

私はasp.netファイルを持っています:

  • 3つのラジオボックス、1つを選択する必要があります
  • アイテムを選択する必要があるリストボックス
  • キャプチャ検証

今私は4つのバリデーターを持っています:

  • ラジオボックスのCustomValidator
  • リストボックスのCustomValidator
  • キャプチャ検証用のCustomValidator(セッションに保存されます)
  • captcha-textboxが空にならないようにするためのRequiredFieldValidator。

私の問題は注文です。ユーザーがフォーミュラを送信しようとして、4つのバリデーターがすべて間違っている場合、他の3つはサーバー側であるため、RequiredFieldValidatorのみが表示されます。ユーザーは「ああ、たった1つの間違い」と考えて修正しました。そしてその後、他の3つの間違いが発生し、ユーザーはそれについて少し怒っているかもしれません-「なぜシステムは最初のプレイで私に教えてくれないのですか?!」

それで、どのようにユーザーに良い解決策がありますか?

サーバー側の検証を同時に実行する方法はありますか?クライアント側の検証は失敗しますか?または、サーバー側でクライアント側の検証を実行する方法はありますか?

(注意!RequiredFieldValidatorを削除し、代わりに4番目のCustomValidatorを実行しようとしました。これを実行すると、4つのCustomValidatorがあり、Requ-Field-Valはありません。最終的に、フォーミュラーが送信された後、CustomValidatorはヒットしません= ( どうしてか分かりません。)

4

2 に答える 2

2

方法の1つは、 EnableClientScriptプロパティを使用して、必須フィールドバリデーターのクライアント側検証をオフにすることです。そのため、サーバー側でのすべての検証が行われます。

しかし、(可能であれば)より良い方法は、それらすべてにクライアント側の検証を使用することです。つまり、ClientValidationFunctionプロパティを使用してカスタムバリデーターでカスタムjs検証ロジックを使用します。このような例については、この記事を参照してください。

于 2011-05-09T04:58:23.710 に答える
1

コントロールバリデーターのValidationGroup="abc"プロパティを追加し、Submit関数でPage.Validate( "abc")メソッドを使用して、サーバー側のコントロールをいつか検証します。

このようなもの。

Page.Validate("abc")
If Not Page.IsValid Then
    Return False  
End If
于 2011-10-14T05:46:28.177 に答える