我的页面上有一个更新面板,其中包含一些链接,这些链接具有触发弹出JQuery框的onClick事件。除非发生了AJAX回发,否则这样可以正常工作。我在另一篇文章中看到了一些代码:
Page.ClientScript.RegisterStartupScript(TypeOf(Page), 'ajaxTrigger1', 'Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);', true);
Page.ClientScript.RegisterClientScriptBlock(TypeOf(Page), 'EndRequest1', 'function EndRequestHandler(sender, args){AsyncDone();}', true);
我使用但它似乎没有用。我一直没有定义AsyncDone。有没有人对我能做些什么来解决问题呢?
详细信息:ASP.NET 2,IIS7
提前致谢。
答案 0 :(得分:1)
问题是当updatepanel触发时,它会替换dom中的一大块html,这意味着它会替换你将click事件绑定到的元素。
要绕过此外观,请查看jquery .live()或.delegate(),它会一直查找与您提供的选择器匹配的事件,或者如果您希望每次更新面板刷新内容时都绑定到内容,请查看jQuery updatepanel plug-in
答案 1 :(得分:1)
我通过不使用jQuery中的document.ready来对此进行排序。相反,我用过:
function pageLoad(sender, args) { //code }
我还没有看到任何不利影响,所以希望这会解决我的问题。
答案 2 :(得分:1)
我使用更新面板只是为了停止asp.net中的整个页面刷新,甚至包括jquery.But在使用更新面板之后,问题解决了但是又产生了另一个问题。 jquery脚本在updatepanel中没有工作。
此问题现已解决。
示例:在jquery日期选择器的情况下,Jquery脚本的通常调用如下所示:
<script type="text/javascript">
$(function() {
$("#datepickers").datepicker({
showOn: "button",
buttonImage: "images/calendar.gif",
buttonImageOnly: true
});
});
</script>
即使我使用了与
相同的代码Page.ClientScript.RegisterStartupScript(TypeOf(Page), 'ajaxTrigger1',
'Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);', true);
Page.ClientScript.RegisterClientScriptBlock(TypeOf(Page), 'EndRequest1', 'function EndRequestHandler(sender, args){AsyncDone();}', true);
解决方案出现在此处:http://kopila.com.np/ 但它对我没有用。后来我知道jquery脚本在部分回发之后不会工作ieour ajax request.If我们尝试在更新面板内调用任何JQuery脚本做任何脚本在第一个ajax请求之后不能工作。< / p>
示例:当您使用asp.net更新面板时,再次按如下方式调用它:
<script type="text/javascript">
function pageLoad(sender, args) {
if (args.get_isPartialLoad()) {
$("#datepickers").datepicker({
showOn: "button",
buttonImage: "images/calendar.gif",
buttonImageOnly: true
});
}
}
</script>
更多详情请访问:http://kopila.com.np