posted by 방랑군 2012. 1. 8. 00:50

Repeater 바인딩 예제
 ==> 이 그림의 예제는 리피터 콘트롤 바인딩 예제로 준비 한 것입니다.^^

 RptTest_1.aspx : 코딩

 <%@ Page Language="C#" AutoEventWireup="true"

                         CodeFile="RptTest_1.aspx.cs" Inherits="RptTest_1" %>

  ........

 <html xmlns="http://www.w3.org/1999/xhtml">
 <head id="Head1" runat="server">
 </head>
 <body>
  <form id="form1" runat="server">
   <div>
    <asp:Repeater ID="Rpt_1" runat="server">
    <HeaderTemplate>
     <table id="tblObj" border="1px">
      <tr>
       <th>번호</th>
       <th>제목</th>
       <th>내용</th>
       <th>비고</th>
      </tr>
    </HeaderTemplate>
    <ItemTemplate>
     <tr> 
     <td style="text-align:center;"><%# PlusNum(Eval("SEQ"))%></td>
     <td><%# Eval("TITLE")%></td>
     <td><%# Eval("CONTENTS")%></td>
     <td> <input type="text" id="txtValue_<%# Eval("SEQ")%>"

                             name="txtValue_<%# Eval("SEQ")%>" size="30" />
     </td>
     </tr>
    </ItemTemplate>
    <FooterTemplate>
  </table>
    </FooterTemplate>
 </asp:Repeater>
 </div>
 </form>
 </body>
 </html>

 RptTest_1.aspx.cs : 코딩

 public partial class RptTest_1 : PageBase
 {
   protected void Page_Load(object sender, EventArgs e)
   {
     if (!IsPostBack)
     {
      DataBindings();
     }
   }

 private void DataBindings()
 {

   SqlConnection con = new SqlConnection(constr);
   con.Open();

   SqlCommand com = new SqlCommand();
   com.Connection = con;
   com.CommandType = CommandType.StoredProcedure;
   com.CommandText = "USP_TEST_BOARD";
   SqlDataAdapter ad = new SqlDataAdapter(com);
   DataSet ds = new DataSet("NOVITEST");
   ad.Fill(ds, "TEST_BOARD");

   DataTable dt = ds.Tables["TEST_BOARD"];
   int rowCnt = dt.Rows.Count;
   for (int i = 0; i < rowCnt; i++)
   {
    dt.Rows[i]["TITLE"] = TestMethod(dt.Rows[i]["TITLE"].ToString());
   }

    this.Rpt_1.DataSource = dt;
    this.Rpt_1.DataBind();

    con.Close();
  }

  private string TestMethod(object strObj)
  {
    return strObj.ToString() + " - New Add Test String";
  }

  public string PlusNum(object objTmp)
  {
    return (Convert.ToInt32(objTmp) + 100).ToString();
  }
}

예제 설명

 1] <%# PlusNum(Eval("SEQ"))%> ==> 함수를 만들어서 바인딩한 예제

 2] id="txtValue_<%# Eval("SEQ")%>" 이런식으로 각 고유 아이디 가능 하다

 3] private string TestMethod(object strObj) ==> 코드 안딴에서 함수 처리

 ※ 참고

 DataSource에 배열을 바인딩 할 경우
  ==> <%# Container.DataItem %>