我已经在网格视图的行中添加了一个复选框,当单击该复选框时,将在该行中展开一个面板。我的网格视图需要使用分页,所以我在一个会话变量中保存了当前页面在页面更改之前的状态。当用户单击返回页面时,我将重新填充复选框,但这不会展开面板。有没有办法从后面的代码扩展面板?
<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,而是找一种不同的方式来显示面板?
发布于 2012-09-22 03:13:11
您可以尝试添加一个公共/受保护的方法:
public bool IsCollapsed(object rowId) {
//get row by ID here and return true if collapsed
return ....
}这将为需要展开或折叠的行返回一个值。
并像这样使用它:
Collapsed='<%# IsCollapsed(Eval("RowId")) %>'其中RowId是表示项ID的属性。
https://stackoverflow.com/questions/12534175
复制相似问题