我在 Accordion 控件中有两个更新面板,布局如下:
<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
功能。但是,如果我不调用它,那么应该转换为 Accordion 的 div 不再是 Accordion 。更新 2
经过更多的工作,我认为问题可能在于 Jquery 在部分回发后没有重新绑定(bind)事件。许多解决方案声称您必须注册客户端脚本,但我在我的 aspx 页面顶部有这个:
<asp:ScriptManager runat="server" EnablePageMethods="true">
<Scripts>
...(其他脚本)
路径="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"/>
</Scripts>
</asp:ScriptManager>
如何在我的代码中重新绑定(bind) JQuery 事件?
最佳答案
最后,我想我已经解决了!几行代码就浪费了几个小时。不总是这样吗? :D
对于遇到此线程的人,我补充说:
Sys.Application.add_init(pLoad);
然后我创建了一个名为
pLoad
的函数其中包含我的 Accordion javascript(在原始帖子中)以及一些其他功能。到目前为止,事情似乎正在奏效......
关于asp.net - UpdatePanel 只刷新一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2572219/