다음 구조는 aspx 페이지에 있습니다.다음 코드에서 중첩 된 Asp : GridView를 찾는 방법?
<asp:Panel ID="pnlCust" runat="server">
<asp:GridView ID="gvMaster" runat="server"
OnRowCreated="gvMaster_RowCreated">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:Panel ID="pnlMaster" runat="server">
//...
</asp:Panel>
<asp:Panel ID="pnlDetails" runat="server">
<asp:GridView ID="gvDetails" runat="server">
<Columns>
//...
</Columns>
</asp:GridView>
</asp:Panel>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</asp:Panel>
패널은 Ajax Control Toolkit의 CollapsiblePanelExtender에 사용됩니다.
코드 숨김에서 gvDetails 컨트롤을 찾기 위해 FindControl을 사용하려하지만 gvMaster_RowCreated 이벤트에있는 최신 시도가 작동하지 않습니다.
GridView gv =
e.Row.FindControl("pnlDetails").FindControl("gvDetails") as GridView;
여기서 e는 GridViewRowEventArgs
입니다. 기본적으로이 페이지에있는 작업을 수행하고 있지만 SqlDataSource를 사용하지 않고있는 사람은 기본적으로 RowCreated 이벤트에서 전달 된 e 인수에서 FindControl을 통해 SqlDataSource를 찾습니다. 여기에 링크가 있습니다 :
위와 같은 방법으로 시도했지만 null 값을 반환 한 다음과 같은 방법으로 처리했습니다. GridView gv = e.Row.FindControl ("gvDetails") as GridView; – Xaisoft
위의 스 니펫을 시도해 보았습니다. 단계를 완료하면 gv가 null입니다. – Xaisoft
나는 내가 곤두박질 친다 고 생각합니다. 죄송합니다! 유일한 시도는 RowCreated 대신 RowDataBound 이벤트를 사용하는 것이지만 너무 길다. –