Whether to use Page_IsValid or Page_ClientValidate() (for Client Side Events)
<p>I have following code inside a button click handler. Both approaches work fine. The <code>Page_ClientValidate()</code> causes an extra validation check and do processing whereas <code>Page_IsValid</code> makes use of existing property. </p>

<p>QUESTIONS</p>

<ol>
<li>In case of button click, is it always guaranteed that <code>Page_IsValid</code> would have been calculated by that time? If is not guaranteed, we need to call <code>Page_ClientValidate()</code> explicitly.</li>
<li>What are the events that happen before <code>Page_IsValid</code> is set? For such events we should not rely on <code>Page_IsValid</code></li>
</ol>

<p><strong>UPDATE</strong></p>

<p>Is it assured that the button click event handler (in JavaScript) will be called only after the validation part is completed (i.e., after Page_ClientValidate() was invoked as part of validation) ? If this is assured, can I rely on Page_IsValid?</p>

<p><strong>SCRIPT</strong></p>

<pre><code>  $('#btnSave').click(function (e) {

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

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

  });
</code></pre>

<p><strong>REFERENCES</strong>:</p>

<ol>
<li><a href="http://stackoverflow.com/questions/13565718/hide-redundant-error-message-in-asp-net-validationsummary">Hide redundant error message in ASP.Net ValidationSummary</a></li>
<li><a href="http://stackoverflow.com/questions/13825543/validator-causes-improper-behavior-for-double-click-check?lq=1">Validator causes improper behavior for double click check</a></li>
<li><a href="http://stackoverflow.com/questions/3227830/page-clientvalidate-is-not-defined">Page_ClientValidate is not defined</a></li>
<li><a href="http://stackoverflow.com/questions/969465/problem-with-page-clientvalidate">Page_ClientValidate is validating multiple times.</a></li>
<li><a href="http://msdn.microsoft.com/en-us/library/aa479045.aspx" rel="nofollow">MSDN - ASP.NET Validation in Depth</a></li>
</ol>
