2008-10-09 7 views
0

I 사용자가 같은 것을 만들 수있는 사용자 정의 컨트롤을 만들려고 해요 다음템플릿 기반 ASP.NET 사용자 컨트롤

<uc1:MyControl id="controlThing" runat="server"> 

    <uc1:BoundColumn id="column1" Column="Name" runat="server" /> 
    <uc1:CheckBoxBoundColumn id="column2" Column="Selector" runat="server" /> 
    <uc1:BoundColumn id="column3" Column="Description" runat="server" /> 

    ...etc 

    </uc1:MyControl> 

내가 허용 할 특정 컨트롤이 사실 그뿐만 아니라,있다 당신은 어떤 타입의 많은 것을 가질 수 있습니다. XSD에서 이것을 그림으로 그릴 수 있지만 ASP.NET에 대한 확신이 전혀 없습니다.

내 ASP.NET 부두가 지금 비어 있습니다. 어떤 생각이라도 있습니까?

답변

2

PersistenceMode.InnerProperty이 당신을 얻을 것이다처럼 당신이 원하는 당신이 MSDN docs.가 뭔가를하고 있습니다 .. 여기 원하는 것입니다 이 :

<cc1:MyControl runat="server"> 
    <Items> 
     <asp:ListItem Text="foo" /> 
    </Items> 
</cc1:MyControl> 

사용자 정의 클래스를 만들어서 사용할 수도 있습니다.

0

ListView 또는 GridView와 같은 기존 컨트롤을 재정의 할 수 있습니까? 그것은 당신의 가장 간단한 선택입니다.

그러나 사용자 지정 템플릿 컨트롤을 만들려면 ITemplate를 사용해야합니다.

나는 이것을하지 않았다. 그러나 빠른 google은 이것을 돌려 줬다 : http://www.developerfusion.com/article/4410/in-depth-aspnet-using-adonet/2/ 그것은 좋게 보였다.

내가 그것을 커버 책 "개발 마이크로 소프트 ASP.NET 서버 컨트롤 및 구성 요소"를 가지고 있지만 나는 충분히, 아직 읽어하지 않은 (http://www.amazon.com/exec/obidos/ASIN/0735615829/nikhilkothari-20)

0

은 내가 염려 가장 어려운 부분이야 가정 내 사용자 정의 컨트롤 내에서 주어진 수의 사용자 정의 컨트롤 집합을 템플릿으로 만들 수 있습니다.

[PersistenceMode(PersistenceMode.InnerProperty)] 
public ListItem Items { 
    get; set; 
} 

하고 다음과 같이 사용할 수 있습니다 :

<mycontrol id="control1" runat="server"> 
    <templateitem id="bleh1" runat="server" /> 
    <templateitem id="bleh2" runat="server" /> 
    <templateitem id="bleh3" runat="server" /> 
    ..etc 
</mycontrol>