Gridview Control에서 column 으로 사용할 field를 정의할 때 기본적으로는 BoundFiled만 가지고 표현이 가능하나 다양한 표현을 위해서는 TemplateField가 필요하다.
TemplateField를 사용하는 이유는 다음과 같다.
1. 하나의 열에 여러개의 열을 합하여 보여주고자 할 때
2. 열 데이타에 텍스트보다 웹컨트롤이나 이미지를 표현하고자 할 때
다음은 일반적으로 사용하는 Gridview 의 디자인 페이지 예이다.
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" BackColor="LightGoldenrodYellow"
BorderColor="Tan" BorderWidth="1px" CellPadding="2"
ForeColor="Black" GridLines="None" Font-Size="Small" AllowPaging="True" OnPageIndexChanging="GridView1_PageIndexChanging" PageSize="6" Width="567px" BorderStyle="Solid">
<FooterStyle BackColor="Tan" />
<Columns>
<asp:HyperLinkField HeaderText="id" DataTextField="No" />
<asp:TemplateField HeaderText="제목">
<HeaderStyle Width="300px"></HeaderStyle>
<ItemTemplate>
<asp:HyperLink id="Hyperlink1" runat="server" NavigateUrl='<%# GetShow( Eval("id") ) %>' Text='<%# Eval("title") %>'>
</asp:HyperLink>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="name" HeaderText="이름">
<HeaderStyle Width="50px"></HeaderStyle>
</asp:BoundField>
<asp:BoundField DataField="dtime" HeaderText="올린 날짜">
<HeaderStyle Width="80px"></HeaderStyle>
</asp:BoundField>
<asp:BoundField DataField="hit" HeaderText="조회"></asp:BoundField>
</Columns>
<PagerStyle BackColor="PaleGoldenrod" ForeColor="DarkSlateBlue" HorizontalAlign="Center" VerticalAlign="Middle" />
<SelectedRowStyle BackColor="DarkSlateBlue" ForeColor="GhostWhite" />
<HeaderStyle BackColor="Tan" Font-Bold="True" />
<AlternatingRowStyle BackColor="PaleGoldenrod" />
</asp:GridView>
이중에서 소스 페이지에 다음과 같은 메소드가 추가 되어야 한다.
public string GetShow(object obj)
{
return "view.aspx?id=" + obj;
}