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