TemplateField介绍
原文:
http://blog.csdn.net/yyh1988923/article/details/6925309
使用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 |
第二种方式是打开GridView控件的智能标记,选择Edit Template命令。这会打开一个菜单,如图7-23所示,从中可以选择想要编辑的列模板。
![]() |
(点击查看大图)图 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" |
其他常用的模板包括InsertTemplate和EditTemplate。在栅格中的一行进入插入或编辑模式时,栅格就会使用这些模板。下一节将使用InsertItemTemplate和EditItemTemplate在GridView控件中插入和编辑数据。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决