C# 可折叠PanelExtender能否从代码隐藏扩展?

C# 可折叠PanelExtender能否从代码隐藏扩展?,c#,C#,我在gridview的行中添加了一个复选框,单击该复选框将在该行中展开一个面板。我的gridview需要使用分页,因此我在会话变量中保存页面更改前当前页面的状态。当用户单击返回页面时,我将重新填充复选框,但这不会展开面板。是否需要从后面的代码扩展面板 <asp:CheckBox runat="server" Text="Order Updated Records" ID="cbUR" Visible='<%# !DBNull.Value.Equals(Eval("AnyBox"))%

我在gridview的行中添加了一个复选框,单击该复选框将在该行中展开一个面板。我的gridview需要使用分页,因此我在会话变量中保存页面更改前当前页面的状态。当用户单击返回页面时,我将重新填充复选框,但这不会展开面板。是否需要从后面的代码扩展面板

<asp:CheckBox runat="server" Text="Order Updated Records" ID="cbUR" Visible='<%# !DBNull.Value.Equals(Eval("AnyBox"))%>' /> 
<asp:CollapsiblePanelExtender ID="cInst" runat="server" TargetControlID="inst" Collapsed="true" AutoExpand="true" AutoCollapse="false" ExpandControlID="cbUR" CollapseControlID="cbUR" />
<asp:Panel ID="Inst" runat="server">
    <asp:TextBox runat="server" ID="txtInst" TextMode="MultiLine" Width="200" />
</asp:panel>

我尝试从代码中添加面板、文本框和面板扩展器,但无法使其工作。我在另一篇帖子上读到,整个gridview需要从代码中加载才能工作

我很想用像这样的东西

<asp:CollapsiblePanelExtender ID="cInst" runat="server" TargetControlID="inst" Collapsed='<%#!Convert.ToBoolean(rowItems[index].ToString()) %>' />


是否最好不要使用可折叠的PanelExtender并找到其他方式来显示面板?

您可以尝试添加一个公共/受保护的方法:

public bool IsCollapsed(object rowId) {
    //get row by ID here and return true if collapsed
    return ....
}
这将为需要展开或折叠的行返回一个值

然后像这样使用它:

Collapsed='<%# IsCollapsed(Eval("RowId")) %>'
折叠=“”

其中RowId是表示项目ID的属性。

感谢您的回答Roland。我在将rowid传递给IsCollapsed时遇到问题。我已经崩溃了。如何获取行的ID?错误是数据绑定:“System.Data.DataRowView”不包含名为“Container”的属性。明白了!折叠=“”工作正常。谢谢你的帮助!