본문 바로가기

프로그래밍/.NET

[ASP.NET] 리피터 컨트롤 사용 방법 (Repeater eval if condition)

반응형


리피터 Repeater 컨트롤에서 eval와 조건문을 함께 사용해보자



Repeater 컨트롤은 DB로 부터 Data를 받아서 뿌려줄때 사용한다.

특히, 반복되는 형식의 Data를 뿌려줄때 유용하게 사용할 수 있다.



private void mf_List() { SqlParameter[] parValue = { new SqlParameter("@Type" , SqlDbType.Char, 1), new SqlParameter("@UserId" , SqlDbType.NVarChar, 10) }; parValue[0].Value = this.strType.Trim(); parValue[1].Value = this.strUserId.Trim(); DataTable rtnDt = (DataTable)cls_Global.cls_DBHelper.GetDataTableByProcedure("USP_TEST_LIST", parValue); if (rtnDt.Rows.Count > 0) { this.rep_List.DataSource = rtnDt; this.rep_List.DataBind(); this.rep_List.Visible = true; } else { this.rep_List.Visible = false; } }

<asp:Repeater ID="rep_List" runat="server"> <ItemTemplate> <tr> <td><%#Eval("Num")%></td> <td><%#Eval("Title")%></td> <td><%#Eval("WriteDate")%></td> </tr> </ItemTemplate> </asp:Repeater>





  예제



Eval 과 조건문을 함께 사용해보자

다음과 같은 코드를 구현하고 싶다.

<% if (Eval("Title").ToString() == "꽁쥐") {%> <span>Y</span> <% } else {%> <span>N</span> <% }%>


위의 코드는 올바른 코드가 아니며, 아래와 같이 작성해주면 된다.

<%# Eval("Title").ToString() == "꽁쥐" ? "<span>Y</span>" : "<span>N</span>" %>






  응용


<% if (Eval("Title").ToString() == "꽁쥐") {%> <a href="javascript:Down('<%# Eval("Title") %>')">꽁쥐</a> <% } else {%> N <% }%>

<%# Eval("NAME").ToString() == "꽁쥐" ? "<a href=\"javascript:Down('" + Eval("NAME") + "')\">꽁쥐</a>" : "N" %>






  응용2


Eval 의 값을 스크립트단으로 전달


<script> function test(val) { alert(val); } </script> <asp:Button ID="btn" runat="server" Text="조회" OnClientClick="test('ggmouse');" OnClick="btn_Click" />


다음과 값이 버튼 클릭 시 스크립트단의 test함수로 ggmouse 값을 전달한다.

그런데 이때, ggmouse 값이 Eval("NAME")의 값일 경우 어떻게 전달할까?


<script> function test(val) { alert(val); } </script> <asp:Button ID="btn" runat="server" Text="조회" OnClientClick='<%# "test(" + Eval("NAME") + ");" %>' OnClick="btn_Click" />




  참고


https://msdn.microsoft.com/ko-kr/library/system.web.ui.webcontrols.repeater(v=vs.110).aspx




반응형