DB에서 데이터를 불러와서 뿌려주는 방법은 여러가지가 있지만, asp.net에서는 repeater가 자주 사용된다.

webform 방식으로 구현된 페이지에서 repeater를 사용하는 방법이다.

 

aspx 구현

//aspx 구현부분 
<asp:Repeater ID="rptList" runat="server" onitemdatabound="rptList_ItemDataBound" >
<ItemTemplate>
                <tr>
                <td><%# DataBinder.Eval(Container.DataItem, "SEQNO")%></td>
                <td class="alignL">
                <a href=''#''  onclick="fnView(''<%# DataBinder.Eval(Container.DataItem, "SEQNO")%>'',''<%=ViewData["PAGE"] %>'',''<%=ViewData["SEARCH_TYPE"] %>'',''<%=ViewData["SEARCH_VALUE"] %>'');">
                <%# DataBinder.Eval(Container.DataItem, "SUBJECT").ToString() %>
                </td>
                <td><%#DataBinder.Eval(Container.DataItem, "WDATE").ToString().Length >= 8 ? DataBinder.Eval(Container.DataItem, "WDATE").ToString().Substring(0, 4) + "-" + DataBinder.Eval(Container.DataItem, "WDATE").ToString().Substring(4, 2) + "-" + DataBinder.Eval(Container.DataItem, "WDATE").ToString().Substring(6, 2) : DataBinder.Eval(Container.DataItem, "WDATE").ToString()%>   </td>
                <td><asp:Label ID="isFile" runat="server"></asp:Label></td>
                <td><%# DataBinder.Eval(Container.DataItem, "VISIT")%></td>
                </tr>                
</ItemTemplate>
</asp:Repeater>

 

aspx.cs 구현

public void InitData(){
    //cs단에서 바인딩 해주는 부분 
    DataTable dt = new DataTable();
    dt = getList(); //각자 바인딩이 필요한 데이터를 불러온다.
    rptList.DataSource = dt.DefaultView;
    rptList.DataBind();
}

//리피터에 바인딩 하면서 데이터를 셋팅 해주는 부분
//db데이터를 그대로 노출하는 경우도 있지만, 셋팅이 필요한 경우가 많기 때문에 자주 사용한다.
protected void rptList_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
    if (e.Item.ItemIndex != -1)
    {         
        Label lb = (Label)e.Item.FindControl("isFile");
        string FileName = ((System.Data.DataRowView)e.Item.DataItem)["FILENAME"].ToString().Trim();
        if (FileName.Length > 0)
        {
            lb.Text = @"<img src=""/images/icon/icon_disk.gif"" >";
        }
    }
}

+ Recent posts