ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

您如何在C#.NET中“克隆” WebControl?

2019-10-24 17:05:20  阅读:66  来源: 互联网

标签:asp-net c net


我的基本问题是,在.NET中,如何克隆WebControl?

我想构建一个自定义标签,该标签可以产生其子对象的多个副本.
最终,我打算构建一个类似于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已经重复,以后我可以提出解决方案!

因此,我们将拥有三个孩子(我认为)的自定义控件-一个文字控件,一个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吗?

解决方法:

使用Repeater绑定绑定的数据源有什么问题.它将复制模板控件,并处理ID的创建和全部操作.

标签:asp-net,c,net
来源: https://codeday.me/bug/20191024/1922061.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有