Asp.net Ajax和Asp.net結(jié)合得很完美,發(fā)現(xiàn)不夠用的時(shí)候,難免想到了Jquery。一般Jquery和Asp.net Ajax這兩樣?xùn)|西結(jié)合使用也常見,如果處理好的話,并不會(huì)沖突。但最近發(fā)現(xiàn)Jquery的ready()函數(shù)在PostBack回來的時(shí)候,ready里執(zhí)行的動(dòng)作竟然無效了,第一印象:會(huì)不會(huì)Asp.net Ajax和Jqueryd的ready沖突了,然后去掉Asp.net Ajax腳本的引用,果然一切正常了。思前思后,最后給Asp.net Ajax ScriptManager添加一個(gè)add_endRequest(),Jquery的ready終于恢復(fù)正常了
代碼如下:
<script type="text/javascript">
Sys.WebForms.PageRequestManager.getInstance()
.add_endRequest(EndRequestHandler);
function EndRequestHandler(sender, args) {
if (args.get_error() == undefined) {
PageInit();
}
}
function PageInit() {
$(document).ready(function() {
//TODO
});
}
PageInit();
</script>
其中,添加上這段代碼,還有一些注意的事項(xiàng),如果這段腳本放置在head里,會(huì)發(fā)生一個(gè)錯(cuò)誤,提示Sys對(duì)象undefined,因?yàn)锳sp.net Ajax的ScriptManager,還沒有狀態(tài)完,Sys對(duì)象肯定找不到,這時(shí)把這腳本放置在body末尾,一切都正常了。
更多信息請(qǐng)查看IT技術(shù)專欄