2012-02-09 11 views
1

私はasp.net Webフォームで.net framework 4.0を使用しています。その間に、jqueryフォームの検証を実装しました。フォームの検証にはうまくいきますが、更新パネルで問題が発生したため部分的なポストバックはできませんが完全にポストバックはできません。すべての返信を感謝します。jQueryフォームの検証と更新パネル

私はこのようなことをしており、フォームの検証を行い、更新パネルがリクエストを初期化するときにイメージを表示します。

<script type="text/javascript"> 
    $(document).ready(function() { 
     $(".logForm").validate(); 
     $('#main_UpdatePanelAccount').initializeRequest(function (options) { 
      $("#flashAcc").show(); 
      $("#flashAcc").fadeIn(400).html('<img src="/image/load.gif" align="absmiddle">'); 
     }); 
    }); 
</script> 

この後、ポストバックかどうかを判断するために、この2ブロックのコード(コメント付きとコメント付き)を用意しています。ただし、この2ブロックのコードは、完全にポストバックされた更新パネルでも終了します。

<script type="text/javascript"> 
    Sys.WebForms.PageRequestManager.getInstance().add_initializeRequest(instance_initializeRequest); 
    function instance_initializeRequest(sender, args) { 
     if (!Validator()) { 
      args.set_cancel(true); 
     } 
    } 

// $(function() { 
//  Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler); 
//  //Re-initialize jquery after an auto post back. 
//  function EndRequestHandler(sender, args) { 
//   //Do work after update panel fires. 
//   var prm = Sys.WebForms.PageRequestManager.getInstance(); 
//   if (!Validate()) { 
//    prm.abortPostBack(); 
//    args.set_cancel(true); 
//   } 
//   else { 
//    prm.add_beginRequest(); 
//    args.set_cancel(false); 
//   } 
//  } 
// }); 
</script> 

答えて

2

最初に、コードがupdatepanelの中​​にある場合は、ポストバックで一掃されます。あなたの質問に無関係ですが、単なるメモです。第2に、updatepanelをupdatemode = "conditional"に設定しない限り、他の更新パネルのすべてのコンテンツも更新されます。まだ完全なページをリフレッシュする場合は、代わりに次のようにしてください:

<script type="text/javascript"> 
<!-- 
    function Post() { 
     __doPostBack('<%= UpdatePanel1.ClientID %>', ''); 
    } 
--> 
</script> 
+0

現在、適切なモードのコードブロックがアップデートパネルの外にあります:) –