0

我想创建一个自定义控件,我应该能够在其中拥有一些子控件,例如在 asp 面板中。

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

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

textbox1.Text="something";

谢谢

4

1 回答 1

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);
    }        
}
于 2013-08-12T06:59:41.273 回答