0

クリックすると行のパネルが展開されるグリッドビューの行にチェックボックスを追加しました。私のグリッドビューはページングを使用する必要があるため、ページが変更される前の現在のページの状態をセッション変数に保存しています。ユーザーがクリックしてページに戻ると、チェックボックスが再設定されますが、パネルは展開されません。コードビハインドからパネルを展開する方法はありますか?

<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 を使用せず、パネルを表示する別の方法を見つけたほうがよいでしょうか?

4

1 に答える 1

0

public/protected メソッドを追加してみてください:

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

展開または折りたたむ必要がある行の値を返します。

次のように使用します。

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

ここで、RowId はアイテムの ID を表すプロパティです。

于 2012-09-21T19:13:11.150 に答える