childdrepeater在CodeBehind中从ParentRepeater获取值

本文关键字:获取 ParentRepeater 中从 CodeBehind childdrepeater | 更新日期: 2023-09-27 18:12:58

我要做的是

       <asp:Repeater ID="ParentRepeater" runat="server" OnItemDataBound="ItemBound">
            <ItemTemplate>
               <asp:Repeater ID="Repeater_SideMenu_Guides_Medlem" runat="server">
                   <ItemTemplate>
                   </ItemTemplate>
               </asp:Repeater>
            </ItemTemplate>
        </asp:Repeater>
后台代码

 ParentRepeater.DataSource = CraftGuides.GetAllGroups();
 ParentRepeater.DataBind();
 protected void ItemBound(object sender, RepeaterItemEventArgs args) 
    { 
        if (args.Item.ItemType == ListItemType.Item) 
        { 
            Repeater childRepeater = (Repeater)args.Item.FindControl("ChildRepeater"); 
            childRepeater.DataSource = CraftGuides.GetGuidesByGroupID( Insert ID from Parent Here ); 
            childRepeater.DataBind(); 
        } 
    }
我不知道如何从父元素中获取ID从子元素中获取数据从数据库中收集数据

childdrepeater在CodeBehind中从ParentRepeater获取值

如果您有一个Group对象,您可以使用以下命令:

var item = args.Item;
var dataItem = item.DataItem as Group;

然后你很容易抓住组对象的id,并把它传递到你的GetGuidsByGroupID()

我喜欢使用as关键字,因为如果强制转换失败,它将返回null。如果使用(Group)item.DataItem失败,将抛出异常。