2012-09-21 2 views
0

클릭했을 때 행의 패널이 확장되는 gridview 행에 체크 상자를 추가했습니다. 내 gridview는 페이징을 사용해야하므로 세션 변수에 페이지를 변경하기 전에 현재 페이지의 상태를 저장합니다. 사용자가 페이지를 다시 클릭하면 확인란을 다시 채우지 만 패널을 확장하지는 않습니다. 코드 배후에서 패널을 확장 할 수 있습니까?CollapsiblePanelExtender가 코드 숨김에서 확장 될 수 있습니까?

<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()) %>' /> 

같은 것을 사용하는 CollapsiblePanelExtender를 사용하여 패널을 표시하는 다른 방법을 찾고 싶어요?

답변

0

공용/보호 방법을 추가하는 시도 할 수 :

확장 또는 축소 할 필요가있는 행의 값을 반환

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

화하고 사용의 RowId는 항목의 ID를 나타내는 속성이다

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

.

+0

답변 해 주셔서 감사합니다. 나는 RowID를 IsCollapsed에 전달하는 데 문제가 있습니다. 나는 Collapsed = '<% # IsCollapsed (Eval ("Container.DataItemIndex")) %>'입니다. 행의 ID를 얻으려면 어떻게해야합니까? 오류는 DataBinding : 'System.Data.DataRowView'에 'Container'라는 이름의 속성이 없습니다. –

+0

알았습니다! 접음 = '<% # IsCollapsed (Container.DataItemIndex) %>'가 작동합니다. 도와 주셔서 감사합니다! –

관련 문제