2011. 11. 2. 13:26



ASP.Net로 처음 게시판 만들때까지만 해도 DataList로 리스트를 구현해보고
"우왕ㅋ굳ㅋ"
했는데 요즘은 다 이런 방식입니다 ㅡ.-;;;
(이런건 탬플릿 방식이라던가 뭐라고 부르던데..)
하긴 제가 처음 DataList를 만질때가 벌써 6년이 넘어가는군요 ㅡ.-;;
(이런거 만들어내는 녀석들은 저보다 몇배는 더 똑똑한 사람들이니 ㅎㅎㅎ)

DataList를 이용하면 좋은 점이 많습니다.
리스트커스텀이라던가 특정동작을 한번에 할관리 할수 있죠..

1.DataList생성
도구상자에서 DataList를 찾아 드래그 합니다.


이렇게 하면 쌩뚱맞은 모양의 데이터리스트가 추가됩니다.

2.DataList의 구조
데이터 리스트는 작게 보자면 3부분으로 나눌수 있습니다
Item Template, Header and Footer Template, Separator Template

2-1. 아이템 템플릿(Item Template)

데이터의 몸통에 해당하는 부분입니다.

총 4개의 템플릿을 포함할수 있습니다.
ItemTemplate, AlternatingItemTemplate, SelectedItemTemplate, EditItemTemplate : 편집용 템플릿


2-1-1.ItemTemplate
아이템템플릿은 필수 요소입니다.
바인딩된 데이터에 따라 데이터가 출력 됩니다.

 


2-1-2.AlternatingItemTemplate
아이템템플릿과 교차되어 나오는 줄로 일반적으로 구분선넣거나 아이탬템플릿과 다른 배경색이나 글자체같은 스타일을 지정할때 많이 사용 됩니다.




2-1-3.SelectedItemTemplate
선택된 아이탬을 표시합니다.
AlternatingItemTemplate처럼 사용되는데 차이가 이것은 선택된 아이탬에만 적용됩니다.



2-1-4.EditItemTemplate

선택한 아이탬을 수정할때 사용합니다.
이 템플릿의 장점은 선택한 아이탬만 수정할수 있다는 점잊죠 ㅎㅎㅎㅎ
보통 이템플릿에는 수정을 할수 있는 인터페이스를 넣습니다.



2-2.헤더와 푸터 템플릿( Header and Footer Template)
헤더는 데이터리스트의 위에 푸터는 아래에 한번씩 출력되는 템플릿입니다.



2-2-1.HeaderTemplate
데이터 리스트의 위쪽에 출력되는 템플릿입니다.
보통 컬럼표시용으로 많이 사용합니다.

2-2-2.FooterTemplate
데이터 리스트의 아래쪽에 출력되는 템플릿입니다.
보통 리스트의 정보들을 출력할때 많이 사용합니다.


2-3.구분자( Separator Template)
AlternatingItemTemplate와 비슷하면서도 다릅니다.
AlternatingItemTemplate는 교차로 내용을 출력하기위함이고 이건 구분자만 표시하기위한 용도이죠.
사용하기에 따라선 AlternatingItemTemplate를 대신하는 역활로도 가능하지만 구지 불편을 감수하면서 그럴 필요는 없습니다 ㅎㅎㅎ


3.데이터 바인딩 하기
데이터 리스트는 기본적으로 데이터셋(DataSet)이나 데이터테이블(DataTable)로 하는 것이 가장 좋습니다.
데이터셋이 여러가지로 까이고 요즘은 리스트가 대세긴하지만 데이터셋도 나름의 장점이 있습니다 ㅎㅎㅎ

데이터 바인딩은 간단합니다.
1.데이터 소스를 지정한다.
2.바인딩을 호출한다.

끝 ㅎㅎㅎ

코드로 보자면


//테스트용 데이터셋
DataSet dsTest = new DataSet();

//테이블 생성
dsTest.Tables.Add("tbTest");
//컬럼 생성
dsTest.Tables["tbTest"].Columns.Add("colA");
dsTest.Tables["tbTest"].Columns.Add("colB");
dsTest.Tables["tbTest"].Columns.Add("colC");

//데이터 추가
string[] a = {"0", "첫번째","두번째"};
dsTest.Tables["tbTest"].Rows.Add(a);
string[] b = {"1", "첫번째","두번째"};
dsTest.Tables["tbTest"].Rows.Add(b);
string[] c = {"2", "첫번째","두번째"};
dsTest.Tables["tbTest"].Rows.Add(c);
string[] d = { "3", "첫번째", "두번째" };
dsTest.Tables["tbTest"].Rows.Add(d);
string[] e2 = { "4", "첫번째", "두번째" };
dsTest.Tables["tbTest"].Rows.Add(e2);
string[] f = { "5", "첫번째", "두번째" };
dsTest.Tables["tbTest"].Rows.Add(f);

//데이터 소스 지정
DataList1.DataSource = dsTest;
//데이터 바인딩
DataList1.DataBind();


이렇게 됩니다.

간단하게 데이터리스트에 대해서 알아봤습니다.
이것만 잘사용해도 게시판의 리스트는 한큐에 끝납니다 ㅡ,.ㅡ;;
다음글에서는 게시판리스트를 구현해 보도록 하겠습니다.