我有一个网格视图。在里面,我有一个包含按钮的CollapsiblePanelExtender。当我按下一个按钮时,这会导致post返回,并且CollapsiblePanelExtender关闭。我正在尝试编写一个解决方案,使CollapsiblePanelExtender在回帖后保持打开状态。这就是我到目前为止所尝试的:
function pageLoad(sender, args) {
var objExtender;
var retval="";
if (document.getElementById(GridView1)) {
retval = document.getElementById(GridView1);
}
var CollapsiblePanelExtender1 = retval.getElementsByTagName("CollapsiblePanelExtender1");
if(CollapsiblePanelExtender1.get_Collapsed()) {
CollapsiblePanelExtender1.set_Collapsed(true);
}
else {
CollapsiblePanelExtender1.set_Collapsed(false);
}
}发布于 2013-10-21 22:17:23
基本上,CollapsiblePanelExtender在回发期间保持其状态。但在回发期间,我假设您执行的是数据绑定(我猜您已经执行了)。在数据绑定期间,所有的控件都会被重新创建,这就是为什么它们的内部状态是松散的。
为了解决您的问题,我建议您在执行数据绑定之前保存CollapsiblePanelExtender的状态,然后恢复此状态。这可以在服务器端完成。如果您启用了动画,这也有助于避免UI的闪烁。
因此,要获得CollapsiblePanelExtender的状态,您可以简单地记住它的客户端状态值。然后,您将能够恢复此值。例如,这是可用于在服务器端展开/折叠CollapsiblePanelExtender的代码:
// To collapse panel.
this.CollapsiblePanelExtender1.ClientState = "true";
// To Expand panel.
this.CollapsiblePanelExtender1.ClientState = "false";如果你仍然想在客户端折叠/展开CollapsiblePanelExtender,那么你需要类似下面这样的代码:
Sys.Application.add_load(function() {
var extender = $find('<%= this.CollapsiblePanelExtender1.ClientID %>');
extender.expandPanel();
extender.collapsePanel();
});编辑此选项没有任何帮助,因为您试图在单击处理程序中恢复状态。当您调用网格视图控件的databind时,不会立即重新创建行。因此,如果你想设置(恢复)可折叠扩展器控件的状态,最好在网格的RowCreated事件处理程序中完成。
例如,您可以使用类似以下内容的代码:
protected void GridView_OnRowCreated(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow && SomeValueToIdentifyThatThisPanelShouldBeExpanded)
{
CollapsiblePanelExtender extender =
e.Row.FindControl("CollapsiblePanelExtender1") as CollapsiblePanelExtender;
extender.ClientState = "false";
}
}发布于 2013-10-26 00:31:46
我实际上在我的博客上使用了这些,因为asp.net允许我使用带有中继器控件的可折叠面板拖放。
当你打开面板时,技巧就是在内容中加入ajax。你可以很容易地在内容中插入一个页面,或者从一个服务中插入一个ajax。
这是一个可折叠面板的示例,其中包含带标题的内容。这些面板是由The服务加载的。单击以展开面板。
http://gosylvester.com/blog.aspx?id=39
发布于 2013-11-20 06:15:26
您是否尝试在可折叠面板扩展器上设置SuppressPostBack="True“
https://stackoverflow.com/questions/19425917
复制相似问题