如何像面板一样创建USER CONTROL

时间:2010-07-06 12:08:55

标签: asp.net

我想在我的所有网页中创建一个用户控件(Div),就像面板一样。例如,UserControl可以有两个具有背景设计的DIV或TR。如果它被添加到页面,则UserControl必须允许将控件添加到其中,即Div,Labels和TextBoxes。 div的高度应为AUTO。请帮帮我。

2 个答案:

答案 0 :(得分:3)

将以下属性添加到UserControl:

[PersistenceMode(PersistenceMode.InnerProperty)]
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
[TemplateInstance(TemplateInstance.Single)]
public ITemplate Content
{
    get
    {
        return _content;
    }
    set
    {
        _content = value;
    }
}
private ITemplate _content;

然后在CreateChildControls方法中处理内容:

protected override void CreateChildControls()
{
    if (this.Content != null)
    {
        this.Content.InstantiateIn(this);
    }
    base.CreateChildControls();
}

在标记中,您现在可以将任何内容添加到控件的内容标记中:

<ctl:YourControl runat="server" ID="Foo" style="background-color:#666">
   <Content>
      <asp:Label ... />
      <asp:TextBox... />
   </Content>
</ct1:YourControl>

答案 1 :(得分:0)

将控制面板代码写在另一页上。

页面上的

检查是否需要并包含控制面板。如果页面上还有其他元素需要特殊控件。

你可以做一个if()并在那里添加控件。