ASP.NET 2.0的FormView控件类似于DetailsView控件,因为它能方便地显示后端数据源的单个记录。本文将讨论这个控件的语法和应用。
用户化
虽然这两个控件一次显示一条记录,DetailsView和FormView的关键差别在于:FormView利用用户定义的模板;而DetailsView则使用行字段。FormView控件没有预先定义数据布局;相反,你建立一个包含控件的模板来显示记录中的单个字段。模板中包含建立表单所要用到的格式、控件和绑定表达式。
你可以控制数据记录以三种形式显示:编辑、查看和添加一条新记录。另外,你可以包括和格式化标题与页脚元素。你还可以利用FormView控件各个部分中的任何一个有效的ASP.NET控件。
语法
宣称和使用一个FormView控件实例与宣称和使用一个DetailsView控件实例非常相似。它们的主要区别是,因为没有默认设置可以使用,你必须在FormView控件中包含显示数据的格式和模板。列表A显示了打开FormView元素标签的一部分语法。
你可能已经注意到,许多属性和HTML表格元素相对应,如标题和边框。这说明ASP.NET使用HTML表格来呈现FormView控件。
你可以通过微软网站在线查看一个更加全面的FormView控件属性列表。下表列出了一些值得关注的重要属性。
宣称FormView控件时,还必须对它的内容进行相应格式化。它的数据通过模板显示。FormView控件主要使用五个模板:
这些模板允许你控制绑定到一个FormView控件的数据的显示和行为。例如,列表B中的ASP.NET Web表单连接到标准的Northwind数据库,允许用户通过名字、姓、雇用日期和家庭电话号码字段查看、编辑、删除和添加新的员工记录。
它使用TextField控件显示被编辑或添加的数据,以及只是为了查阅而显示的值。ItemTemplate使用CSS格式化表格,而InsertTemplate则使用HTML样式进行格式化,到底使用哪种方法由开发者决定。
注:ASP.NET用Button控件添加、编辑、删除和保存记录。
在Button控件中,New的CommandName值将记录转换为插入模式并加载InsertItemTemplate模板,它允许用户输入一个新记录值。你可以用Edit的CommandName值给ItemTemplate增加一个新按钮,使FormView控件进入编辑模式。
可以给ItemTemplate模板增加一个带Delete的CommnadName值的按钮,允许用户从数据源中删除当前记录。Update的CommnadName保存数据,而Cancel终止操作。
开发者控制
许多ASP.NET 2.0新功能的易用性令人惊喜。FormView对DetailsView的简单功能进行了扩张,允许你根据需要轻松控制要格式化的显示内容。这个新控件为你交付解决方案提供另一个选项。