2

以前のバリデーターが無効であることが判明した場合、バリデーターの評価を停止する方法はありますか? コントロールレベルで?

たとえば、 、 、およびカスタム バリデータを使用してテキスト ボックスを作成するRequiredFieldValidator場合、またはが入力が無効であると既に判断しているRegularExpressionValidator場合は、カスタム バリデータを評価したくありません。RequiredFieldValidatorRegularExpressionValidator

具体的には、この場合、カスタム バリデータにはクライアント側のサポートがありませんが、ポストバックを実行するのではなく、( を使用して) データが入力されていない場合はポストバックを防止したいと考えていますRequiredFieldValidator

4

1 に答える 1

3

テキスト ボックスが空の場合、RegularExpressionValidatorRequiredFieldValidatorはどちらもtrue を返します。言い換えれば、デフォルトでは、空のテキストボックスを空にすることを検証していないため、正しいことを行っており、箱から出して期待どおりに動作するはずです.

RequiredFieldValidator と RegularExpressionValidator は、デフォルトで JavaScript を使用してクライアント側も検証するため、どちらかが失敗してもポストバックは発生しません。

JavaScript と .NET 正規表現は 100% 互換ではないため、クライアント側とサーバー側の両方で正規表現文字列をテストすることを忘れないでください。

検証をトリガーするボタンを含め、すべてのコントロールでValidationGroupを定義することをお勧めします。これによりサーバー側の検証が有効になるはずですが、100% 確信があるわけではないため、CustomValidator がトリガーされない場合は、myButton_Click メソッドの最初の行として次のコードを追加します。

myButton_Click(object Sender, EventArgs e)
{
    Page.Validate("MyValidationGroup");
    if (!Page.IsValid)
    {
        return;
    }

    // ...
}

Page.Validate() は、パラメーターとして validationGroup を受け入れます。

于 2009-12-09T16:14:43.643 に答える