1

カスタムバリデーターに2つのコントロール、たとえば2つのチェックボックスから入力を取得させ、1つだけがチェックされていることを確認する方法はありますか?

それとも私はこれについてすべて間違っているのでしょうか、そしてもっと重要なことに、私がそうであれば、あなたは私を正しい方向に向けることができますか?

これが間違った方向であっても、それが当てはまる状況に遭遇した場合、つまりそれが可能である場合に備えて、これを行う方法を知りたいと思います。

よろしくお願いします。

4

5 に答える 5

2

2つのチェックボックスのうち1つだけがチェックされていることを確認したい場合は、間違ったコントロールを使用しています。

ラジオボタンを使用して、排他的な選択を設定します。

于 2010-05-11T15:15:38.413 に答える
1

RadioButtonがより適切であると思われるというMitchelに同意します。

しかし、CompareValidatorを接続して、UnEqualを検証するように設定してみましたか?

于 2010-05-11T15:17:39.437 に答える
1

AJAX Control Toolkitには、専用のチェックボックスリストがあります。チェックボックスのようにラジオボタンの選択を解除することはできないため、その必要性に同意します。

カスタムバリデーターをロールすることを検討している場合は、サーバー側で実行するように聞こえます。その時点で、コードビハインドで必要なロジックを実行できます。逆に、独自のJavaScriptをロールして強制することもできます。

于 2010-05-11T15:17:51.537 に答える
1

このことについてブログ記事を書きました。

http://coding.infoconex.com/post/2010/10/11/ASPNET-CustomValidator-that-validates-multiple-controls-using-both-Server-Side-and-Client-Side-scripting

クライアント側とサーバー側の両方の検証を組み合わせて再検証します

于 2010-10-14T04:21:57.570 に答える
1

私も同様の問題に取り組んでいます。この問題を回避する方法は、各コントロールのバリデーターを作成し、それらを同じメソッドにリンクして、検証の制限が何であれ、それを保証することでした。

protected void validator1_ServerValidate(...){
  myValidationMethod(...);
}

protected void validator2_ServerValidate(...){
  myValidationMethod(...);
}

動作しますが、かなり醜いIMOです

于 2011-06-08T14:46:52.457 に答える