我如何访问asp.net网格中的第二个子网格?

问题描述 投票:0回答:1

我怎样才能访问第二个子网格表?我可以用这个访问第一个:

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>
c# asp.net
1个回答
0
投票

您需要向下导航控制树并将项目转换回GridView。如果不转换为GridView,则无法使用基于索引的FindControl。

GridView secondChild = (GridView)((GridView)TraineeWeeklyMealList.Rows[x].FindControl("MealPlannerList")).Rows[y].FindControl("ItemList");
© www.soinside.com 2019 - 2024. All rights reserved.