我在.net framework 4.0的asp.net web表单中使用updatepanel。在此期间,我实现了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个代码块也以更新面板完全回发结束。
<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>
答案 0 :(得分:2)
首先,如果你的代码在updatepanel中,它将在回发时被删除。与您的问题无关,只是旁注。其次,除非您将updatepanel设置为updatemode =“conditional”,否则它还将更新其他更新面板中的所有内容。如果您仍在进行整页刷新,我会尝试这样做:
<script type="text/javascript">
<!--
function Post() {
__doPostBack('<%= UpdatePanel1.ClientID %>', '');
}
-->
</script>