私は標準のasp.netバリデーターについて多くのことを学びました、そして私の最新の発見はバリデータークライアント側を無効にする方法についてでした、それはかなりクールでした。
今、私の最初の投稿でバリデーターが有効になっているが、クライアント側で無効にした場合、サーバー側はクライアント側の変更を認識して保持しますか、それともページがユーザーに返送されますか?
ありがとう!
ネイト
私は標準のasp.netバリデーターについて多くのことを学びました、そして私の最新の発見はバリデータークライアント側を無効にする方法についてでした、それはかなりクールでした。
今、私の最初の投稿でバリデーターが有効になっているが、クライアント側で無効にした場合、サーバー側はクライアント側の変更を認識して保持しますか、それともページがユーザーに返送されますか?
ありがとう!
ネイト
.NET サーバー側バリデータ コントロールは、ポストバック中にサーバー側コードで最後に設定されたものにリセットされます。
たとえば、必須フィールド バリデーターを .aspx タグで rqvControl.enabled = true に設定した場合、クライアント側の状態に関係なく、ポストバック後に有効になります。
クライアント側でバリデーターの状態を設定していて、それを保持したい場合は、ポストバック中にサーバー コードで読み取ることができる値を設定する必要があります。これは、有効化/無効化操作を実行している JavaScript から隠しフィールド値を設定するのと同じくらい簡単です。コードビハインドでは、非表示フィールドの値に基づいてバリデーターの有効状態を処理するだけです。
クライアント側でそれらを無効にするにはどうすればよいですか? クライアントでそれらを無効にする行為がポストバックを行わない限り、ビューステートは変更されないため、次のページの更新時に再度有効になると思います(ここでは理論化しています)。
自分で試してみて、うまくいかない場合は、バリデーターを無効にするときにクライアントにも設定する隠しフィールドを追加し、ポストバック中にサーバー側でそのフィールドをチェックして、それらを有効/無効にするかどうかを知ることができますそこの。