我正在使用ASP.NET Web表单创建一个facebook应用程序。 我正在使用Jquery来满足一些javascript需求(比如facebook调用,自动完成,选项卡控件,滑块等),并且在页面中还有一些服务器端代码的更新面板。
我面临很多与Jquery和updatepanel的冲突,部分回发在大多数情况下都不起作用或许多按钮点击事件没有触发,当我检查开发人员工具时,我看到很多Sys.WebForms.PageRequestManager错误
我正在考虑从我的应用程序中删除所有更新面板,但是我可以使用Jquery中与updatepannel相同的内容吗?
感谢您的帮助。
答案 0 :(得分:4)
您必须使用Jquery Ajax。这样你就可以访问代码的静态方法,一些服务或HTTP处理程序。
有了这个,您的系统将会表现得更好。
在网上搜索,有几篇文章jQuery + Ajax + ASP.NET。
THKS
森特
答案 1 :(得分:1)
这不应该是必要的;只要事件正确连接,jQuery和UpdatePanel就可以很好地协同工作。如果问题是UpdatePanel导致你的jQuery绑定停止工作,那是因为当它进行回发时这些与你的javascript最初绑定的元素不同。回发后重新绑定将解决您的问题;所有这些都需要将一些javascript调用绑定到Microsoft提供的回调函数:
function BindEvents()
{
//Here your jQuery function calls go
}
var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_endRequest(BindEvents());
PageRequestManager将在每次回发后调用BindEvents函数。只要它在回发之前存在,就可以在页面上的任何位置。通常我要做的是将所有jQuery绑定调用放在一个函数中,在本例中为BindEvents()
,然后在document.ready()
期间调用它并将其添加到PageRequestManager。
不幸的是,除了广泛使用Web服务和AJAX调用之外,我还没有看到任何jQuery替代UpdatePanels。不过,这种方法对我来说效果很好。
答案 2 :(得分:0)
@PCasagrande可能修复了jQuery和UpdatePanels无法协同工作的问题。
要回答“什么是与Updatepanel等效的jQuery”的问题,我会说这是.load()方法。
简单地说,您使用URL和选择器在目标/容器元素上调用.load()。收到URL的html后,将在该HTML上评估选择器,并将选择器的结果加载到目标/容器中。
最后,在我看来UpdatePanel是如何工作的。您定义一个容器元素(UpdatePanel),然后重新加载页面,只需获取所需的结果部分。
不幸的是,你不会获得UpdatePanel提供的所有ViewState魔法,但也许你没有使用它。