与ajax updatepanel和jquery一起使用时的回发问题

时间:2011-02-20 04:44:29

标签: jquery updatepanel postback

我正在研究asp.net和jquery。我一起使用updatepanel和jquery。 Enerything很好。但有时面临回发问题。假设在运行页面后我测试了一些调用同一页面的pagemethod的jquery调用。在某些事件之后,提交按钮不起作用。我按了好几次,但什么也没做。我无法找到问题。

请帮忙。

2 个答案:

答案 0 :(得分:1)

当您在jquery中挂接事件时,它们与更新面板替换的dom元素相关联。因此,当你的dom元素被更新面板的替换元素破坏时,你连接的事件就会丢失。

您可以使用$(“MySelector”)。live('click',function(){alert('hi')});

它的工作原理是在页面的根dom节点上附加一个鼠标单击事件处理程序,该节点在原始源符合选择器条件时运行。事件将在dom上升,直到它们被处理和取消。这是一个非常方便的工具,用于处理动态替换或添加按钮的任何代码。当您不幸遇到更新面板时,它会特别有用。

您还可以查看.delegate。这样你就可以在更接近dom的父节点上定义函数(从而减少事件泡沫并提高效率)。我一直很好,只使用.live

答案 1 :(得分:0)

如果与按钮单击绑定的jQuery包含在$(document).ready中,它将松开在更新面板回发上绑定它的jQuery操作。 Microsoft asp.net Ajax自动调用名为pageLoad的函数,因此请执行以下操作。

像这样设置:

页面加载(){        $( '#按钮1')。点击(函数(){            //做一点事        }); }

不是这个:

(文档)$。就绪(函数(){        $( '#按钮1')。点击(函数(){            //做一点事        }); });