DetailsView 控件
许多应用程序需要一次作用于一条记录。在 ASP.NET 1.x 中,没有内置的功能支持这种情况。创建单条记录视图是可能的,但需要您自己编写代码。首先,您需要获取记录,然后,将字段绑定到数据绑定表单,选择性地提供分页按钮来浏览记录。我编写了三个 Cutting Edge 列的安装程序来解决这个问题 — 2002 年 4 月、5 月和 6 月。
当生成主/详细视图时,经常需要显示单条记录的内容。通常,用户从网格中选择一条主记录,让应用程序追溯所有可用字段。通过组合 GridView 和 DetailsView,编写少量代码,就能够生成有层次结构的视图。
DetailsView 控件的用户界面能够通过使用数据字段和类型进行自定义,其方式与 GridView 相似。DetailsView 不支持自定义模板,因为这项特殊的功能完全构造在新的 FormView 控件中。DetailsView 具有一个命令栏,显示 Edit、Delete 和 New 按钮的任意组合。当您单击 Edit 或 New 时,控件显示 Edit 或 Insert 模式,字段内容显示在文本框中。工作模式能通过 Mode 和 DefaultMode 属性控制。
使用 DetailsView 控件能很好地实现无需代码的主/详细视图。除了 Edit 和 Delete 按钮,GridView 控件支持 Select 按钮,它也是预定义的。通过设置 AutoGenerateSelectButton 属性为真,您能为每一行启用此按钮。当用户单击此按钮时,当前行输入选定状态,为 GridView 的 SelectedIndex 属性分配从 0 开始的索引值。此外,GridView 控件引发 SelectedIndexChanged 事件。应用程序可以挂钩到这个事件,并执行自定义代码。
在 ASP.NET 2.0 中,如果您想生成主/详细视图,则无需处理 SelectedIndexChanged 事件。您可以将一个 GridView 控件和一个 DetailsView 控件拖放到页面上,将两者绑定到一个数据源。
FormView 控件
FormView 是新的数据绑定控件,使用起来像是 DetailsView 的模板化版本。它每次从相关数据源中选择一条记录显示,选择性地提供分页按钮,用于在记录之间移动。与 DetailsView 控件不同的是,FormView 不使用数据控件字段,而是允许用户通过模板定义每个项目的显示。FormView 支持其数据源提供的任何基本操作。
FormView 控件是作为通常使用的更新和插入接口而设计的,它不能验证数据源架构,不支持高级编辑功能,比如外键字段下拉。然而,使用模板来提供此功能很容易。FormView 和 DetailsView 有两方面的功能差异。首先,FormView 控件具有 ItemTemplate、EditItemTemplate 和 InsertItemTemplate 属性,而 DetailsView 一个也没有。其次,FormView 缺少命令行 — 将可用功能进行分组的工具栏。与 GridView 和 DetailsView 控件不同的是,FormView 没有其自己默认的显示布局。同时,它的图形化布局完全是通过模板自定义的。因此,每个模板都包括特定记录需要的所有命令按钮。
Bind 关键字像 Eval 一样用于显示数据,而且能在更新或插入一条记录时检索输入值。此外,Bind 对 GridView 和 DetailsView 使用的 TemplateFields 非常有用。
Bind 将绑定控件属性值存入一个值集合,FormView 控件自动检索和使用这个集合来组合插入或编辑命令的参数列表。传递到 Bind 的参数必须与数据容器的字段名匹配。例如,上一个代码片断中的文本框存放备注字段的值。最后,还要记住的是编辑和插入模板必须包含保存变更的按钮。这是指普通的按钮 — 用于保存的 Update 和 Insert 以及用于放弃操作的 Cancel。
这些只是一些简单的,今天还没研究好,后天将详细介绍 DetailsView和formview与ORACLE 应用的实例.....