-
[Asp.net] Repeater를 이용한 동적 컬럼바인딩Programming/ASP 2014. 2. 2. 19:29
Repeater 에서 동적으로 컬럼 바인딩을 해야되는 경우, Literal을 이용하여 처리할 수 있다.
<div>
<table>
<tr>
<th>Id </th>
<th>Name</th>
<th>Marks1</th>
<th>Marks2</th>
<th>Matks3</th>
</tr>
<asp:Repeater ID="rptDemo" runat="server">
<ItemTemplate>
<asp:Literal ID="rptContents" runat="server" OnDataBinding="rptContents_DataBinding"></asp:Literal>
</ItemTemplate>
</asp:Repeater>
</table>
</div>
private int Cnt = 0; protected void rptContents_DataBinding(object sender, EventArgs e) { Literal lt = (Literal)sender; _repeaterCount++; if (_repeaterCount % _repeaterTotalColumn == 1) lt.Text = ""; lt.Text += string.Format("{0}", Eval("ID").ToString()); lt.Text += string.Format("{0}", Eval("NAME").ToString()); lt.Text += string.Format("{0}", Eval("MARKS1").ToString()); lt.Text += string.Format("{0}", Eval("MARKS2").ToString()); lt.Text += string.Format("{0}", (string.Equals(Cnt, 1) ? Eval("MARKS3").ToString() : Eval("MARKS4").ToString())); lt.Text += ""; } private DataTable CreateDataTable() { DataTable dt = new DataTable(); dt.Columns.Add(new DataColumn("ID", typeof(string))); dt.Columns.Add(new DataColumn("NAME", typeof(string))); dt.Columns.Add(new DataColumn("MARKS1", typeof(string))); dt.Columns.Add(new DataColumn("MARKS2", typeof(string))); dt.Columns.Add(new DataColumn("MARKS3", typeof(string))); dt.Columns.Add(new DataColumn("MARKS4", typeof(string))); DataRow row = dt.NewRow(); row["ID"] = "1"; row["NAME"] = "홍길동"; row["MARKS1"] = "1-1"; row["MARKS2"] = "1-2"; row["MARKS3"] = "1-3"; row["MARKS4"] = "1-4"; dt.Rows.Add(row); row = dt.NewRow(); row["ID"] = "2"; row["NAME"] = "홍길동"; row["MARKS1"] = "2-1"; row["MARKS2"] = "2-2"; row["MARKS3"] = "2-3"; row["MARKS4"] = "2-4"; dt.Rows.Add(row); row = dt.NewRow(); row["ID"] = "3"; row["NAME"] = "홍길동"; row["MARKS1"] = "3-1"; row["MARKS2"] = "3-2"; row["MARKS3"] = "3-3"; row["MARKS4"] = "3-4"; dt.Rows.Add(row); row = dt.NewRow(); row["ID"] = "4"; row["NAME"] = "홍길동"; row["MARKS1"] = "4-1"; row["MARKS2"] = "4-2"; row["MARKS3"] = "4-3"; row["MARKS4"] = "4-4"; dt.Rows.Add(row); row = dt.NewRow(); row["ID"] = "5"; row["NAME"] = "홍길동"; row["MARKS1"] = "5-1"; row["MARKS2"] = "5-2"; row["MARKS3"] = "5-3"; row["MARKS4"] = "5-4"; dt.Rows.Add(row); row = dt.NewRow(); row["ID"] = "6"; row["NAME"] = "홍길동"; row["MARKS1"] = "6-1"; row["MARKS2"] = "6-2"; row["MARKS3"] = "6-3"; row["MARKS4"] = "6-4"; row = dt.NewRow(); return dt; }
Repeater를 DataBinding 하는 부분입니다.
...
rptDemo.DataSource = CreateDataTable();
rptDemo.DataBinding();
...
'Programming > ASP' 카테고리의 다른 글
[Asp.net - C#] Farpoint Cell에 BackColor 반영하는 하기. (0) 2011.11.30 ASP.NET으로 만드는 게시판 - [9]답글 달기 (0) 2009.02.09 ASP.NET으로 만드는 게시판 - [8]글 번호 매기기 (0) 2009.02.09 ASP.NET으로 만드는 게시판 - [7]게시물 수정 (0) 2009.02.09 ASP.NET으로 만드는 게시판 - [6]게시글 보여주기 (0) 2009.02.09