我的基本问题是,如何在.NET中克隆WebControls?如何在C#.NET中克隆WebControls?
我想建立一个自定义标签,它可以产生多个孩子的副本。最终我打算构建一个类似于JSP/Struts中的标签。
但是我有的第一个障碍是能够复制/克隆控件的内容。
考虑这个颇为人为的例子;
<custom:duplicate count="2">
<div>
<p>Some html</p>
<asp:TextBox id="tb1" runat="server" />
</div>
</custom:duplicate>
的HTML标记是输出会是这样的,
<div>
<p>Some html</p>
<input type="text" id="tb1" />
</div>
<div>
<p>Some html</p>
<input type="text" id="tb1" />
</div>
注:我知道我有重复的ID,我可以想出一个解决方案,那以后!
所以我们会有我的自定义控制3个孩子(我认为) - 一个文字控件,一个TextBox控件和另一个文字控件。
在这个例子中,我已经说'count = 2',所以控件应该做的是输出/渲染它的子元素两次。
什么我希望做的是写一些“OnInit的”代码确实是这样的:
List<WebControl> clones;
for(int i=1; i<count; i++)
{
foreach(WebControl c in Controls)
{
WebControl clone = c.Clone();
clones.Add(clone);
}
}
Controls.AddRange(clones);
然而,据我所知,器WebControls没有实现ICloneable,所以它不可能克隆他们以这种方式。
任何想法如何克隆WebControls?
我有一个真正的使用,所以我很高兴你发表了这个证明以作记录。只有7年才有人找到它! :) – Radderz 2017-01-24 15:13:56