我怎样才能访问第二个子网格表?我可以用这个访问第一个:
GridView gvFirstChild = (GridView)e.Row.FindControl("MealPlannerList");
但是如果我尝试通过用ItemList替换“MealPlannerList”来访问第二个子节点,那么我得到一个空值。有没有人有任何想法可以帮助我访问第二个gridview?
<div class="col-lg-12 text-center">
<asp:GridView runat="server" ID="TraineeWeeklyMealList" CssClass="table table-bordered text-left"
OnRowDataBound="TraineeWeeklyMealList_RowDataBound" DataKeyNames="TraineeID" AutoGenerateColumns="False">
<Columns>
<asp:HyperLinkField DataTextField="FullName" DataNavigateUrlFields="TraineeID"
DataNavigateUrlFormatString="~/Trainer_Webpages/EditTrainee.aspx?TraineeID={0}" ControlStyle-CssClass="btn btn-success btn-xs"
ItemStyle-CssClass="text-center" />
<asp:TemplateField>
<ItemTemplate>
<asp:GridView runat="server" ID="MealPlannerList" CssClass="table table-bordered text-left"
DataKeyNames="MealTraineeID" AutoGenerateColumns="False">
<Columns>
<asp:BoundField DataField="DayOfTheWeek" HeaderText="Day of Meal" />
<asp:BoundField DataField="MealType" HeaderText="Meal Type" />
<asp:BoundField DataField="MealName" HeaderText="Meal Name" />
<asp:TemplateField>
<ItemTemplate>
<asp:GridView runat="server" ID="ItemList" DataKeyNames="FoodID" CssClass="table table-bordered text-left" AutoGenerateColumns="false">
<Columns>
<asp:BoundField DataField="FoodName" HeaderText="Food" />
<asp:BoundField DataField="Calories" HeaderText="Calories" />
<asp:BoundField DataField="Notes" HeaderText="Notes" />
</Columns>
</asp:GridView>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
您需要向下导航控制树并将项目转换回GridView。如果不转换为GridView,则无法使用基于索引的FindControl。
GridView secondChild = (GridView)((GridView)TraineeWeeklyMealList.Rows[x].FindControl("MealPlannerList")).Rows[y].FindControl("ItemList");