/ / W zagnieżdżonym widoku siatki tabela odpowiadająca elementowi potomnemu Gridview nie jest renderowana w html - c #, asp.net, gridview, kontrolki po stronie serwera

W zagnieżdżonym widoku siatki tabela odpowiadająca podrzędnemu widokowi Gridview nie jest renderowana w html - c #, asp.net, gridview, kontrolkach po stronie serwera

Poszedłem za samouczkiem http://www.codeproject.com/Articles/20047/Editable-Nested-GridView-All-in-One

Na stronie tabela odpowiadająca nadrzędnemu widokowi siatki jest renderowana, a inna tabela odpowiadająca podrzędnemu widokowi siatki musi znajdować się w wierszu tabeli nadrzędnej. Zamiast tego ma tylko pustą sekcję

<tr>
<td colspan="100%">
<div id="div1" style=style="display:block;position:relative;left:15px;OVERFLOW:auto;WIDTH:97%">
<div></div>
</div>
</td>
</tr>

Podczas debugowania z Visual Studio dowiedziałem się, że wykryto „potomek gridview” (kontrola serwera). W zdarzeniu ROwDataBound nadrzędnego widoku siatki można znaleźć podrzędną kontrolę widoku siatki w następujący sposób

GridView gv = new GridView();
gv = (GridView)row.FindControl("GridView2");

Założyłem to, ponieważ nie wygenerowano wyjątku zerowego odwołania

Odpowiedzi:

2 dla odpowiedzi № 1

Czy ustawiłeś źródło danych siatki potomnej i związałeś ją później w siatce macierzystej? RowDataBound? W przeciwnym razie nie będzie renderowana siatka.

var gv = (GridView)row.FindControl("GridView2");
gv.DataSource = someDataSource;
gv.DataBind();

Dygresja: I tak nie trzeba tworzyć instancji GridView za pomocą domyślnego konstruktora, gdy i tak masz odniesienie. Kod konstruujący GridView jest zbędny (nawet przy okazji projektu kodowego).