UpdatePanel 只刷新一次
Posted
技术标签:
【中文标题】UpdatePanel 只刷新一次【英文标题】:UpdatePanel refreshes only once 【发布时间】:2011-02-04 01:25:25 【问题描述】:我在手风琴控件中有两个更新面板,布局如下:
<accordion>
<first pane content>
<updatepanel UpdateMode="conditional">
<contenttemplate>...</contenttemplate>
<triggers>...</triggers>
</updatepanel>
</first pane content>
<second pane content>
<updatepanel>
<contenttemplate>...</contenttemplate>
<triggers>...</triggers>
</updatepanel>
</second pane content>
</accordion>
面板更新一次,但之后就不再更新。如果我刷新页面,那么我可以看到更新的信息。这意味着数据库正在更新,但更新面板没有刷新(在第一次刷新之后)。为什么会这样?
这几天一直困扰着我,所以任何建议都将不胜感激。 谢谢!
更新
当我这样称呼时,问题似乎在于:
Sys.require(Sys.components.accordion, function()
$("#acca_profile").accordion(
HeaderCssClass: "acc_header",
HeaderSelectedCssClass: "acc_selectedheader",
FadeTransitions: true,
suppressHeaderPostbacks: true,
requireOpenedPane: false
);
);
在endRequestHandler
函数中。但是,如果我不调用它,那么应该转换为手风琴的 div 不再是手风琴。
更新 2
经过更多的工作,我认为问题可能在于 Jquery 在部分回发后没有重新绑定事件。许多解决方案声称您必须注册客户端脚本,但我在我的 aspx 页面顶部有这个:
<asp:ScriptManager runat="server" EnablePageMethods="true">
<Scripts>
...(其他脚本) 路径="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" />
</Scripts>
</asp:ScriptManager>
如何在我的代码中重新绑定 JQuery 事件?
【问题讨论】:
我需要查看更多代码来提供帮助 您是否检查过您是否收到任何 javascript 错误?您可以使用 firebug 或任何您喜欢的方式。 啊,我发现错误似乎出现在 endRequestHandler 部分中调用的函数中。目前,当更新面板刷新时,手风琴消失(即不再执行用于将 div 转换为手风琴的 javascript)。我尝试在 endRequestHandler 中执行它,虽然这有效,但刷新停止了。我已经用手风琴代码更新了我的帖子。谢谢 【参考方案1】:最后,我想我已经解决了!几行代码就浪费了几个小时。不总是这样吗? :D 对于遇到此线程的人,我补充说:
Sys.Application.add_init(pLoad);
然后我创建了一个名为pLoad
的函数,其中包含我的手风琴javascript(在原始帖子中)以及其他几个函数。
到目前为止,一切似乎都在发挥作用......
【讨论】:
以上是关于UpdatePanel 只刷新一次的主要内容,如果未能解决你的问题,请参考以下文章
webforms : 确定 updatepanel 中的哪个控件触发刷新
AJAX中UPDATEPANEL配合TIMER控件实现局部无刷新