7

ボタンクリックハンドラー内に次のコードがあります。どちらのアプローチもうまく機能します。既存のプロパティを利用Page_ClientValidate()しながら、追加の検証チェックと処理を行います。Page_IsValid

質問

  1. ボタンがクリックPage_IsValidされた場合、その時点までに計算されていることが常に保証されますか? が保証されていない場合は、Page_ClientValidate()明示的に呼び出す必要があります。
  2. 設定前に発生するイベントは何Page_IsValidですか? そのようなイベントについては、依存するべきではありませんPage_IsValid

アップデート

ボタン クリック イベント ハンドラー (JavaScript) は、検証部分が完了した後 (つまり、検証の一部として Page_ClientValidate() が呼び出された後) にのみ呼び出されることが保証されていますか? これが保証されている場合、Page_IsValid を信頼できますか?

脚本

  $('#btnSave').click(function (e) {

  //Aproach 1
  var isValid = Page_ClientValidate('');
  if (isValid) 
  {
       //Do reamining work
  }

  //Aproach 2
  if (Page_IsValid)
  {
      //Do reamining work
  }

  });

参考文献

  1. ASP.Net ValidationSummary で冗長なエラー メッセージを非表示にする
  2. バリデータにより、ダブルクリック チェックで不適切な動作が発生する
  3. Page_ClientValidate が定義されていません
  4. Page_ClientValidate は複数回検証しています。
  5. MSDN - 詳細な ASP.NET 検証
4

1 に答える 1

4
  1. ボタン クリックの場合、ボタンのが に設定されてPage_ClientValidate()いる場合 (およびその場合のみ) が呼び出されます。 CausesValidationtrue

  2. Page_ClientValidate()ポストバックを行うプロセスの一部であるため、ボタンのクリック内で呼び出されます。を呼び出した、関数のスコープ内でのみ
    依存します。それ以外の場合は、常に呼び出します。 Page_IsValidPage_ClientValidate()Page_ClientValidate()

コメント:Page_ClientValidate()繰り返し呼び出すと、ページが目障りになりすぎる可能性があります (複数のアラートなど)。そのため、すべての検証を処理するカスタムの検証関数を用意することをお勧めします。

于 2012-12-12T06:39:26.837 に答える