0

我有一个 ajaxToolkit:CollapsiblePanelExtender 以及它控制的两个 asp:UpdatePanels(一个面板在单击时展开另一个面板)。

在我从启动的 Timer 进行 AJAX 更新之前效果很好。页面更新...... CollapsiblePanelExtender 折叠:-P

任何人都知道如何让这个控件保持它正在扩展的面板的状态?

4

2 回答 2

3

我记得遇到过这个确切的问题。

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

于 2011-11-12T03:34:53.070 回答
0

我在另一种情况下遇到过这种情况......

  1. 面板已折叠 计时器滴答作响,部分回发开始
  2. 用户在回发过程中展开面板
  3. 部分回发结束,并且面板的状态返回到“折叠”,因为视图状态保持不变 - 它只是返回到部分回发开始时的位置。

您希望如何处理这取决于您的情况,但在我的情况下,当用户展开或折叠面板时,我会取消异步回发。因为它是一个每隔几秒更新一次当前值的计时器,所以它很快就会再次运行,所以我可以“丢失”一个。

或者,您可以在回发期间禁用展开/折叠功能,方法是使用面板的 add_expanding 和 add_collapsing 事件,并检查 Sys.WebForms.PageRequestManager.getInstance().get_isInAsyncPostBack()。

于 2016-03-14T18:31:32.550 回答