2013. 6. 17. 16:43

 

지금까지는 디자이너에서 'DataList'를 구성하였습니다.

그런데 상황에 따라 템플릿 모양을 바꾸려면 어떻게 해야 할까요?

 

몇가지 방법이 있습니다만 여기서는 미리 만들어둔 템플릿을 적용해 보도록 하겠습니다.

 

 

1. 사용할 템플릿 만들기

사용할 템플릿은 유저컨트롤로 만들면 됩니다.

 

 

 

 

 

내용은 'ItemTemplate'의 내용을 텍스트박스로 바꾼 것 처럼 보이도록 레이블을 텍스트 박스로 교체 합니다.

 

<asp:TextBox ID="TextBox1" runat="server" text='<%# DataBinder.Eval(Container, "DataItem.colA") %>' />
<asp:TextBox ID="TextBox2" runat="server" text='<%# DataBinder.Eval(Container, "DataItem.colB") %>' />
<asp:TextBox ID="TextBox3" runat="server" text='<%# DataBinder.Eval(Container, "DataItem.colC") %>' />

 

 

 

2. 비하인드 코드 수정

이제 우리가 만든 템플릿을 'ItemTemplate'에 넣도록 하겠습니다.

 

아래 코드를 리스트가 바인딩 되기전에 넣으셔야 합니다.

 

//템플릿 교체
//Page.LoadTemplate("[교체할 템플릿의 주소와 이름]");
DataList1.ItemTemplate = Page.LoadTemplate("WebUserControl1.ascx");

 

리스트가 바인딩 되기전에 템플릿을 교체 하여야 합니다.

( 참고 : MSDN - 방법: DataList 웹 서버 컨트롤에서 동적으로 템플릿 만들기)

 

 

 

3.테스트

이제 테스트를 해봅시다.

 

 

우왕ㅋ굳ㅋ!

 

 

4.문제점

하지만 이렇게 추가한 템플릿은 문제가 있습니다.

바인딩된 컨트롤을 찾을수 없습니다-_-;;;

 

해결 방법을 찾고 있는데........

오리무중이네요 ㅡ,.ㅡ;;