C# jQuery表单验证和更新面板

C# jQuery表单验证和更新面板,c#,jquery,asp.net,validation,C#,Jquery,Asp.net,Validation,我正在使用asp.net web表单中的updatepanel和.net framework 4.0。在此期间,我实现了jquery表单验证。它与表单验证配合得很好,但更新面板出现的问题无法执行部分回发,而是完全回发。感谢您的回复 我有类似的东西,在表单上进行验证,并在更新面板初始化请求时显示一些图像 <script type="text/javascript"> $(document).ready(function () { $(".logForm").va

我正在使用asp.net web表单中的updatepanel和.net framework 4.0。在此期间,我实现了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>

$(文档).ready(函数(){
$(“.logForm”).validate();
$('#main_UpdatePanelAccount')。初始化请求(函数(选项){
$(“#flashAcc”).show();
$(“#flashAcc”).fadeIn(400).html(“”);
});
});
在此之后,我有两个代码块(一个带有注释,另一个带有未注释)来确定是否回发。然而,这两段代码也以更新面板完全回发结束

<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>

Sys.WebForms.PageRequestManager.getInstance().add_initializeRequest(instance_initializeRequest);
函数实例_initializeRequest(发送方,参数){
如果(!Validator()){
参数设置\取消(真);
}
} 
//$(函数(){
//Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
////自动回发后重新初始化jquery。
//函数EndRequestHandler(发送方,参数){
////更新面板触发后执行工作。
//var prm=Sys.WebForms.PageRequestManager.getInstance();
//如果(!Validate()){
//prm.abortPostBack();
//参数设置\取消(真);
//            }
//否则{
//prm.add_beginRequest();
//参数设置\取消(false);
//            }
//        }
//    });

首先,如果您的代码在updatepanel中,它将在回发时被删除。与你的问题无关,只是旁注。其次,除非将updatepanel设置为updatemode=“conditional”,否则它也将更新其他更新面板中的所有内容。如果您仍在刷新整个页面,我将尝试以下方式:

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

ya当前使用右侧模式,代码块位于更新面板外:)