5

ASP.NET(MVCではなくWebForms)に、調査フォームがいくつかのスライドに分割されたWebサイトがあります。各スライドには次のボタンがあり、明らかに次のスライドへの移行(クライアント側、ポストバックやリモートリクエストではない)を行います。

各スライドには、関連するバリデーターを含むいくつかのASP.NETコントロールがあります。次のボタンをクリックしたとき(または各入力がフォーカスを失ったとき)にこのバリデーターをトリガーしたいのですが。

ASP.NETがフォーカスの喪失に対してクライアント側の検証を行ったことを思い出しましたが、おそらく私は間違っています...(ASP.NETの開発を約3年でやめたので、思い出せません)

ありがとう

アップデート:

関連するコントロールがフォーカスを失ったときに、ASP.NETが各バリデーターをトリガーするようにすることをお勧めします。ASP.NETがこれを行ったことを覚えています(または私は夢を見ていますか?= P)

4

5 に答える 5

3

まず、すべてのバリデーターに、バリデーターの「TargetControlID」属性を使用して指定されたターゲットコントロールがあることを確認する必要があります。

次に、ページごとに検証グループを設定し、次のボタンとコントロール自体でグループ名を指定できます。

正規表現バリデーターを使用している場合は、このWebサイトから選択できます。

クライアント側を検証 するにはカスタムバリデーターを使用している場合は、クライアント関数を作成し、ClientValidationFunction属性を使用して、カスタムバリデーターでEnableclientScript = "true"を設定することにより、カスタムバリデーターで指定できます。

クライアント関数にsenderパラメーターとargsパラメーターがあることを確認してください。

于 2011-01-17T18:39:33.907 に答える
2

JavaScriptから手動で検証をチェックするために呼び出すことができるPage_ClientValidateと呼ばれる提供されたJavaScript関数があるようです。でも使ったことがないのでYMMV。

于 2011-01-17T18:36:08.370 に答える
1

すべてのクライアント側バリデーターを同じ検証グループに入れ、「次へ」ボタンを使用して同じ検証グループを追加します。ボタンをクリックすると、ポストバックを実行する前にすべてのバリデーターが自動的にトリガーされます。

検証を手動でトリガーすることに関しては...ValidatorOnSubmit()を使用することもできる場合があります。別のプロジェクトでこれを行ったことを覚えていますが、コードを見つけるのに苦労しています。

于 2011-01-17T18:36:52.777 に答える
0

各バリデーターで「SetFocusOnError」を有効にすると、フィールドを離れようとするたびに検証がトリガーされるようです。

于 2011-01-17T22:17:00.593 に答える
0

簡単に言えば、モデルを装飾することで、Asp.Net4.5からデータ注釈がサポートされるようになりました。ここで私の回答を確認してください。クライアント側のWebフォームの検証

于 2017-09-11T07:42:28.513 に答える