컬렉션 속성을 사용하여 ASP.NET 사용자 지정 컨트롤을 작성하는 방법은 무엇입니까?


12

나는

이 해내하는 데 필요한 베어 뼈 코드를 무엇
<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> 

에 가까운 무언가를 보여줍니다.

참고 : 더 나은 제목이나 설명을 제안 해주십시오. 편집 권한이 없더라도 커뮤니티를 위해 항목을 편집하게되어 기쁩니다.

  0

에 선언 컬렉션 속성을 사용하여 컨트롤을 작성하는 방법에 대한 설명이 있지만 "기본 속성으로 ASP.NET 사용자 지정 컨트롤을 작성하는 방법은 무엇입니까?" 23 sep. 082008-09-23 21:10:07

17

여기 당신이 찾고있는 않습니다 정확히 정말 간단한 예제 컨트롤의 :

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> 
나는이 제목을 변경 제안