GridView 模板列
TemplateField允许每一列定义一个完全定制的模板,可以再模板中加入控件标记,任意的html元素以及数据绑定表达式,你可以按 照你的方式布置一切







绑 定GridView后,GridView从数据源获取数据并循环项目的集合,为每个项目处理ItemTemplate,计算其中的数据绑定表达式,并把生 成的Html加到表中。
这里表达式使用了Eval()方法,它是System.Web.UI.DataBinder类的一个静态方 法.Eval()使用方便---它自动读取绑定到当前行的数据项,使用反射找到匹配的字段或属性并获得值。反射的过程稍微增加了一些负载,但不会给整个请 求的处理增加很长时间。如果不用Eval()方法,可以使用Container.DataItem属性访问数据对像,像下面那样:
<%
# ((EmployeeDetails)Container.DataItem)[
"
FirstName
"
]
%>
Eval() 方法加入了一个格式化字段的功能,
<%
# Eval(
"
BirthDate
"
,
"
{0:MM/dd/yy}
"
)
%>
你 还可以自由地组合模板列和其他类型的列
<
asp:TemplateField HeaderText
=
"
Employees
"
>
< ItemTemplate >
< b >
<% # Eval( " EmployeeID " ) %> -
<% # Eval( " TitleOfCourtesy " ) %> <% # Eval( " FirstName " ) %>
<% # Eval( " LastName " ) %>
</ b >
< hr />
< small >< i >
<% # Eval( " Address " ) %>< br />
<% # Eval( " City " ) %> , <% # Eval( " Country " ) %> ,
<% # Eval( " PostalCode " ) %>< br />
<% # Eval( " HomePhone " ) %></ i >
< br />< br />
<% # Eval( " Notes " ) %>
</ small >
</ ItemTemplate >
</ asp:TemplateField >
< ItemTemplate >
< b >
<% # Eval( " EmployeeID " ) %> -
<% # Eval( " TitleOfCourtesy " ) %> <% # Eval( " FirstName " ) %>
<% # Eval( " LastName " ) %>
</ b >
< hr />
< small >< i >
<% # Eval( " Address " ) %>< br />
<% # Eval( " City " ) %> , <% # Eval( " Country " ) %> ,
<% # Eval( " PostalCode " ) %>< br />
<% # Eval( " HomePhone " ) %></ i >
< br />< br />
<% # Eval( " Notes " ) %>
</ small >
</ ItemTemplate >
</ asp:TemplateField >