使用TemplateField列
GridView控件中的一个重要的列类型是TemplateField,它可以使用模板完全定制列的内容。
提示:
如本章前面所述,控件模板只是一个可以添加其他内容的容器,如文本、HTML控件甚或ASP.NET控件。
TemplateField提供了6个不同的模板,用于定制列的指定区域,或创建列中的单元格能进入的模式,如编辑模式。表7-6列出了这些模板。
表 7-6
模 板 名 | 说 明 |
ItemTemplate | 用于显示数据绑定控件的TemplateField中的一项 |
AlternatingItemTemplate | 用于显示TemplateField的替换项 |
EditItemTemplate | 用于显示编辑模式下的TemplateField项 |
InsertItemTemplate | 用于显示插入模式下的TemplateField项 |
HeaderTemplate | 用于显示TemplateField的标题部分 |
FooterTemplate | 用于显示TemplateField的脚标部分 |
要在GridView中使用TemplateField,只需用上一节介绍的Add Field对话框给栅格添加列类型。添加了字段后,就会在GridView中添加一个新的<asp: TemplateField>标记,如程序清单7-32所示。
程序清单7-32 GridView的TemplateField
<asp: TemplateField></asp: TemplateField> |
这个元素是该列包含的各种模板的容器。添加了该列后,就可以创建定制的内容了。为此,可以使用Visual Studio 2008设计界面的模板编辑功能,或在Source视图中为TemplateField元素添加定制的内容。
在Visual Studio设计界面上访问模板编辑功能有两种方式。首先是右击GridView,从弹出菜单的Edit Template选项中选择Column[nn](其中nn是列索引)。使用这种方式时,在Visual Studio 2008设计界面上会显示该列的所有模板,如图7-22所示。
图 7-22 |
(点击查看大图)图 7-23 |
ItemTemplate是最常用的模板,它控制着列中每个单元格的默认内容。程序清单7-33演示了如何用ItemTemplate定制列的内容。
程序清单7-33 使用ItemTemplate
<asp:TemplateField HeaderText='CurrentStatus'>
<ItemTemplate>
<table>
<tr>
<td align='center' style='width: 78px'>
<asp:Button ID='Button2' runat='server' Text='Enable' /></td>
<td align='center' style='width: 76px'>
<asp:Button ID='Button3' runat='server' Text='Disable' /></td>
</tr>
</table>
</ItemTemplate>
</asp:TemplateField> |
注意在这个示例中,ItemTemplate包含HTML控件和ASP.NET控件。图7-24显示了该示例在浏览器中执行的结果。
因为GridView控件绑定了数据,所以还可以用数据绑定表达式访问绑定到控件上的数据,如Eval、XPath或Bind表达式。例如,程序清单7-34说明了如何用Eval方法添加一个数据绑定表达式,设置按钮控件的文本字段。本章后面将介绍数据绑定表达式的更多内容。
程序清单7-34 添加数据绑定表达式
<asp:gridview id="GridView1" |
(点击查看大图)图 7-24 |
其他常用的模板包括InsertTemplate和EditTemplate。在栅格中的一行进入插入或编辑模式时,栅格就会使用这些模板。下一节将使用InsertItemTemplate和EditItemTemplate在GridView控件中插入和编辑数据。