C# 以编程方式向repeater项模板添加控件

C# 以编程方式向repeater项模板添加控件,c#,asp.net,.net-4.0,controls,repeater,C#,Asp.net,.net 4.0,Controls,Repeater,我正在创建一个控件,它将模拟“分组转发器”的功能,同时允许它们为每个组标题定义一个模板,并为每个组项目定义另一个模板 我的方法是创建一个具有两个公共ITemplate成员的新类,该类将公开一种在页面上为这两个模板定义标记的方法。然后,我将获取第一个模板并将其分配给“父转发器”的ItemTemplate,然后将第二个模板分配给子转发器的ItemTemplate 到目前为止一切都很好 现在我剩下的问题是将子转发器添加到父级的ItemTemplate。解决方案是向父转发器的ItemTemplate添加

我正在创建一个控件,它将模拟“分组转发器”的功能,同时允许它们为每个组标题定义一个模板,并为每个组项目定义另一个模板

我的方法是创建一个具有两个公共ITemplate成员的新类,该类将公开一种在页面上为这两个模板定义标记的方法。然后,我将获取第一个模板并将其分配给“父转发器”的ItemTemplate,然后将第二个模板分配给子转发器的ItemTemplate

到目前为止一切都很好

现在我剩下的问题是将子转发器添加到父级的ItemTemplate。解决方案是向父转发器的ItemTemplate添加一个控件(可能是占位符),然后在ItemDataBound上,将子转发器添加到占位符的控件集合,但我没有这种能力,因为我不能假设在页面标记的ItemTemplate中声明占位符

我需要:

A.以其他方式(我不知道如何)以编程方式将子转发器添加到父转发器的ItemTemplate中。

B:将占位符添加到父中继器的ItemTemplate中,以便在ItemDataBound上我可以执行将子中继器放入其中所需的操作

我想要的是一个如何实现上述两种解决方案的建议。非常感谢您的帮助


如果必要的话,我也愿意接受其他方法。

我已经解决了这个问题,但我没有找到多少文章可以帮助我,所以我会发布答案,以防其他人看到

我已扩展ITemplate以创建“NestedRepeaterItemTemplate”。这个新类将一个转发器作为构造函数的参数,然后将这个转发器(子转发器)添加到我在实例化方法重写中创建的新占位符中

实际使用该类将子类添加到父中继器的代码部分可能如下所示:

parentRepeater.ItemTemplate = new NestedRepeaterItemTemplate(childRepeater);
在此代码之前,我已经将GroupItemTemplate添加到子repeater的ItemTemplate中


排序。

如果我没记错的话,我在这里“绕房子”解决了这个问题。没必要。但那是两个工作之前!所以我没有密码。如果你再问一个问题,我会帮你回答。我会在几分钟内回答