我有一个 ajaxToolkit:CollapsiblePanelExtender 以及它控制的两个 asp:UpdatePanels(一个面板在单击时展开另一个面板)。
在我从启动的 Timer 进行 AJAX 更新之前效果很好。页面更新...... CollapsiblePanelExtender 折叠:-P
任何人都知道如何让这个控件保持它正在扩展的面板的状态?
我有一个 ajaxToolkit:CollapsiblePanelExtender 以及它控制的两个 asp:UpdatePanels(一个面板在单击时展开另一个面板)。
在我从启动的 Timer 进行 AJAX 更新之前效果很好。页面更新...... CollapsiblePanelExtender 折叠:-P
任何人都知道如何让这个控件保持它正在扩展的面板的状态?
我记得遇到过这个确切的问题。
CollapsiblePanelExtender 有一个属性 ClientState,它似乎没有在 ViewState 中得到跟踪和维护。
您应该能够手动跟踪和维护 HiddenField(或 ViewState 或 Session,如果您愿意)中的值,并在 AJAX 更新时将 CPE.ClientState 恢复为该值。
更新
找到一个资源,建议您只需要设置 Collapsed 和 ClientState 属性。
http://weblogs.asp.net/ashicmahtab/archive/2008/11/21/act-collapsiblepanelextender-how-to-collapse-expand-programmatically.aspx
我在另一种情况下遇到过这种情况......
您希望如何处理这取决于您的情况,但在我的情况下,当用户展开或折叠面板时,我会取消异步回发。因为它是一个每隔几秒更新一次当前值的计时器,所以它很快就会再次运行,所以我可以“丢失”一个。
或者,您可以在回发期间禁用展开/折叠功能,方法是使用面板的 add_expanding 和 add_collapsing 事件,并检查 Sys.WebForms.PageRequestManager.getInstance().get_isInAsyncPostBack()。