C#_ASP.NET

(ASP.NET, C#) 웹폼페이지에 코드 블록 포함하기 ItemTemplate, Eval

코딩ABC 2023. 5. 13. 19:33
반응형

ASP.NET의 웹폼(web form) 페이지에서 <TemplateField>에서 코드 숨김 페이지(code-behind page)에서 작성한 코드 블록의 반환값을 포함시킬 수 있습니다.

 

예를 들어 보겠습니다.

아래의 그리드뷰는 생일(birthday) 필드가 날짜와 시간까지 표시되어 있습니다.

<Columns>
  <asp:BoundField DataField="hakbun" HeaderText="hakbun" ReadOnly="True" SortExpression="hakbun" />
  <asp:BoundField DataField="name" HeaderText="name" SortExpression="name" />
  <asp:BoundField DataField="sx" HeaderText="sx" SortExpression="sx" />
  <asp:BoundField DataField="birthday" HeaderText="birthday" SortExpression="birthday" />
  <asp:BoundField DataField="department" HeaderText="department" SortExpression="department" />
  <asp:BoundField DataField="s_year" HeaderText="s_year" SortExpression="s_year" />
</Columns>

 

birthday 필드를 날짜만 출력하도록 코드 블록으로 처리할 수 있습니다.

<Columns>
   <asp:BoundField DataField="hakbun" HeaderText="hakbun" ReadOnly="True" SortExpression="hakbun" />
   <asp:BoundField DataField="name" HeaderText="name" SortExpression="name" />
   <asp:BoundField DataField="sx" HeaderText="sx" SortExpression="sx" />

   <%-- <asp:BoundField DataField="birthday" HeaderText="birthday" SortExpression="birthday" />--%>

   <asp:TemplateField HeaderText="생년월일" HeaderStyle-Width="100px">
   <ItemTemplate>
      <%# ShowDate(Eval("birthday").ToString()) %>
         </ItemTemplate>
   </asp:TemplateField>

<asp:BoundField DataField="department" HeaderText="department" SortExpression="department" />
   <asp:BoundField DataField="s_year" HeaderText="s_year" SortExpression="s_year" />
</Columns>

 

C# 코드는 다음과 같이 작성되었습니다.

    public partial class WebForm1 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }

        protected string ShowDate(string datetime)
        {
            if (datetime.Length > 10)
                return datetime.Substring(0, 10);
            else
                return datetime;
        }
    }

 

 

반응형