可折叠面板扩展器是否可以从代码隐藏扩展



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

<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>

我尝试从代码中添加面板、文本框和面板扩展器,但无法使其工作。 我在另一篇文章中读到,整个网格视图需要从代码加载才能正常工作。

我很想使用类似的东西

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

最好不要使用CollapsiblePanelExtender并找到一种不同的方式来显示面板吗?

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

public bool IsCollapsed(object rowId) {
    //get row by ID here and return true if collapsed
    return ....
}

这将为需要展开或折叠的行返回一个值。

并像这样使用它:

Collapsed='<%# IsCollapsed(Eval("RowId")) %>'

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

最新更新