你如何建立一个集合属性的ASP.NET自定义控件?(How do you build an ASP.

2019-06-28 04:18发布

我希望做一些类似于

<cstm:MyControl runat="server">
    <myItem attr="something" />
    <myItem attr="something" />
</cstm:MyControl>

什么是退出这个功能所需要的基本框架代码?

里克的例子显示了一个类似于

<cstm:MyControl runat="server">
    <myItems>
        <cstm:myItem attr="something" />
        <cstm:myItem attr="something" />
    </myItems>
</cstm:MyControl>

如果可能的话我宁愿更简洁的语法。

注:随意提出一个更好的标题或说明。 即使你没有编辑权,我很高兴来编辑为社会着想的条目。

Answer 1:

下面是正是你正在寻找不一个非常简单的例子控制:

namespace TestControl
{
    [ParseChildren(true, DefaultProperty = "Names")]
    public class MyControl : Control
    {
        public MyControl()
        {
            this.Names = new List<PersonName>();
        }

        [PersistenceMode(PersistenceMode.InnerDefaultProperty)]
        public List<PersonName> Names { get; set; }
    }

    public class PersonName
    {
        public string Name { get; set; }
    }
}

而且,这里有一个例子用法:

<%@ Register Namespace="TestControl" TagPrefix="TestControl"  %>

<TestControl:MyControl runat="server" ID="MyControl1">
    <TestControl:PersonName Name="Chris"></TestControl:PersonName>
    <TestControl:PersonName Name="John"></TestControl:PersonName>
</TestControl:MyControl>


文章来源: How do you build an ASP.NET custom control with a collection property?