内部html C#的自定义控件

时间:2013-07-24 13:36:03

标签: .net custom-controls

我想创建一个自定义控件,我应该可以在asp面板中使用一些子控件。

<custom:panel runat="server" id="CustomPanel">
   <asp:TextBox id="textbox1" runat="server" />
   <span>Test</span>
</custom:panel>

我的目标是创建一个自定义容器,并使innerhtml与上面相同。我应该能够在页面后面的代码中访问如下所示的服务器端控件。

textbox1.Text="something";

由于

1 个答案:

答案 0 :(得分:0)

请找到以下解决方案。我们可以用它来创建圆角容器等控件。

[ParseChildren(true, "Items")]
[PersistChildren(true)]
public class CustomContainer : Control
{
    private List<Control> m_items = new List<Control>();


    [Browsable(false)]
    public List<Control> Items
    {
        get { return m_items; }
    }


    protected override void CreateChildControls()
    {
        //create a custom container of our choice for your child controls
        HtmlGenericControl div = new HtmlGenericControl("div");
        foreach (Control ctrl in Items)
        {
            div.Controls.Add(ctrl);
        }
        this.Controls.Add(div);
    }        
}