我的基本問題是,如何在.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