У меня есть следующая структура на странице aspx:
<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>
Панели используются для CollapsiblePanelExtender из Ajax Control Toolkit.
Я пытаюсь использовать FindControl, чтобы найти элемент управления gvDetails в выделенном коде, но моя последняя попытка не сработала, что происходит в событии gvMaster_RowCreated:
GridView gv =
e.Row.FindControl("pnlDetails").FindControl("gvDetails") as GridView;
где e - GridViewRowEventArgs
В основном я делаю то, что было на этой странице, но я не использую SqlDataSource, однако человек в основном находит SqlDataSource через FindControl из аргумента e, переданного из события RowCreated. Вот ссылка:
http://mosesofegypt.net/post/2008/02/Building-a-grouping-Grid-with-GridView-and-ASPNET-AJAX-toolkit-CollapsiblePanel.aspx