위즈군의 라이프로그
Reboot... Search /

[ASP.NET] 리피터 컨트롤(Repeater Control) 바인딩하기

2007. 10. 12. 15:57
Repeater 컨트롤을 이용해 데이터를 바인딩 할 때 DataSet객체 또는 DataReader객체를 데이터 소스로 사용해 바인딩 하는 경우가 가장 많이 사용 됩니다.
일반적으로 아래와 같이 사용합니다.

/* DataSource에 DataRow 등을 이용해 바인딩 할 경우 */
<asp:repeater id="MyRepeater" runat="server">
	<ItemTemplate>
	<asp:Label Text='<%# DataBinder.Eval(Container.DataItem, "wiz.pe.kr") %>
    </ItemTemplate>
</asp:repeater>
위와 같은 일반적 상황에서는 데이터 바인딩에 문제를 느끼지 못하고 개발을 하죠. 하지만 문제는 데이터 소스로 배열 값을 이용해야 하는 경우도 있죠. 상당히 쉽지만 사용 빈도가 적어서 문법이 생각 나지 않을 때가 종종 있습니다. 아래와 같이 사용하면 됩니다.

/* DataSource에 배열을 바인딩 할 경우 */
<%# Container.DataItem %>
또 다른 방법은 바인딩 이벤트를 이용해서 코드에서 바인딩을 구현해 주면 됩니다.
이와 같은 방법은 강력하지만 상당히 많은 노력이 들어가죠.

override protected void OnInit(EventArgs e)
{
	InitializeComponent();
	base.OnInit(e);
}

private void InitializeComponent()
{
	// 이벤트를 등록 합니다.
	this.linkList.ItemDataBound += new System.Web.UI.WebControls.RepeaterItemEventHandler(this.linkList_ItemDataBound);
	this.Load += new System.EventHandler(this.Page_Load);
}

private void linkList_ItemDataBound(object sender, System.Web.UI.WebControls.RepeaterItemEventArgs e)
{
	if (e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item)
	{
		// 바인딩 할 소스를 읽어드립니다.
		string itm = e.Item.DataItem.ToString();
		Literal tLinkURL = (Literal)e.Item.FindControl("linkURL");
		if (tLinkURL != null)
		{
			tLinkURL.Text = itm;
		}
	}
}
간단한 내용 이지만 한번 정리 해봤습니다.

'정리중 > C# & .NET & Web' 카테고리의 다른 글

[XHTML] head 태그  (0) 2007.11.06
[XHTML] title 태그  (0) 2007.10.30
[XHTML] body 태그  (0) 2007.10.23
[.NET&C#] 변수형  (0) 2007.10.22
[C# & .NET] C#을 이용한 사용자 정의 Event 구성  (0) 2007.09.28
[XHTML] XHTML 기본 문법  (0) 2007.09.26
[CSS] IE6 position:fixed 적용하기  (2) 2007.09.20
[ASP.NET] OutputCache에서 VaryByCustom 사용  (0) 2007.09.17
Category&Tag : [정리중/C# & .NET & Web]
위즈군의 라이프로그

Category

전체 (564)
개발 (0)
일반정보 (0)
IT 일반 (1)
일상&사진 (0)
정리중 (563)

Recent Entry

    Recent Comments

      Recent Trackbacks

        Tags

        Links

          Total:
          Today: / Yesterday:
          Powered by Tistory / Skin by 위즈 라이센스정책 rss 2.0