그리드뷰 컨트롤은 다음 코드 블록처럼 <Columns> 섹션을 사용하고, 이곳에 BoundField과 TemplateField 같은 컨트롤을 사용해 하나의 항목을 출력할 수 있다. BoundFileld는 읽기 전용으로 텍스트를 표현할 때 주로 사용하고 TemplateField는 원하는 모든 모양을 <ItemTemplate> 섹션에서 구현하고 데이터는 Eval() 메서드로 출력하는 형태다.
<asp:GridView ID="ctlCategoryList" runat="server" AutoGenerateColumns="false"> <Columns> <asp:BoundField DataField="CategoryId" HeaderText="카테고리 번호" /> <asp:TemplateField HeaderText="카테고리 이름"> <ItemTemplate> <%# Eval("CategoryName") %> </ItemTemplate> </asp:TemplateField> </Columns> <EmptyDataTemplate> <div> <h2>현재 등록된 카테고리가 없습니다.</h2> </div> </EmptyDataTemplate> </asp:GridView>
이상의 그리드뷰 컨트롤에 데이터를 바인딩하는 코드 블록은 다음과 같다. DataSet, DataReader, List<T> 등의 모든 데이터 형식을 받아서 DataSource 속성에 지정하고 DataBind() 메서드를 호출하는 공식과 같은 코드다.
// 카테고리 리스트를 GridView 컨트롤에 출력(바인딩) ctlCategoryList.DataSource = _repository.GetCategories(); ctlCategoryList.DataBind();