在上两节教程中,我们看到了如何使用TemplateField来自定义GridView和DetailsView的输入。TemplateField使我们可以高度自主的定义某个特定的列,但不管是GridView还是DetailsView,都会有点太规则了,简单的说就是它们都有着四四方方的格子一样的外观。很多情况下这样的格子一样的外观是很不错的,不过有的时候我们却需要使用一个不规则的显示外观。当需要显示一个单独的记录时,使用FormView控件就可以实现这种比较随意的外观呈现。
跟DetailsView不同,FormView并不是由那些杂七杂八的列所组成的。你不能给一个FormView添加BoundField或是TemplateField,不过FormView是使用模板来呈现的。我们可以这样来理解FormView,把它当作只含有一个TemplateField的DetailsView控件。FormView支持以下这些模板:
· ItemTemplate – 用于在FormView种呈现一个特殊的记录
· HeaderTemplate – 用于指定一个可选的页眉行
· FooterTemplate –用于指定一个可选的页脚行
· EmptyDataTemplate – 当FormView的DataSource缺少记录的时候,EmptyDataTemplate将会代替ItemTemplate来生成控件的标记语言
· PagerTemplate – 如果FormView启用了分页的话,这个模板可以用于自定义分页的界面
· EditItemTemplate / InsertItemTemplate – 如果FormView支持编辑或插入功能,那么这两种模板可以用于自定义相关的界面
在本节教程中,我们将解释如何使用FormView控件来为产品呈现一个不规则的外观。FormView的ItemTemplate将会使用一个页眉元素和的结合体来显示名称、分类、供应商等等的值,而不是使用各种各样的列(如图一所示)。 图一:FormView打破了DetailsView的那种格子一样外观 第一步:将数据绑定到FormView 打开FormView.aspx页面,并从工具箱中拖一个FormView到设计器中。FormView刚刚添加到页面上时,它就是一个灰色的方块,这就告诉我们它需要一个ItemTemplate。 图二:FormView在添加一个ItemTemplate之前是不会在设计器中呈现出来的 可以手工编写代码(在源视图中)来添加ItemTemplate,也可以通过在设计器中将FormView绑定到一个数据源控件上来实现自动添加。这个自动生成的ItemTemplate包含了用于显示各字段的名称的HTML代码,还有用于显示各字段的值的Label控件,当然了,这些Label控件的Text属性都已经绑定到了各相应的字段上。这个操作也同时生成了InsertItemTemplate和EditItemTemplate,它们为数据源控件的每一个字段都呈现了一个输入控件。 如果你想要自动生成模板,首先应该使用ProductsBLL类的GetProducts()方法来给FormView添加一个ObjectDataSource控件,通过FormView的智能标签你就可以做到上面的这个操作。这样就可以创建一个带有ItemTemplate、InsertItemTemplate和EditItemTemplate的FormView了。在源视图中,删除InsertItemTemplate和EditItemTemplate,因为我们现在对创建一个可编辑和可插入的FormView并不感兴趣。然后,清空ItemTemplate中的标记语言代码,这样我才可以工作于一个干净的环境上。 如果你喜欢手工建立ItemTemplate,你可以从工具箱中拖一个ObjectDataSource到设计器中并配置它,这里可不要在设计器中为FormView添加数据源。我们应该到源视图中手工的将ForView的DataSourceID属性设置为ObjectDataSource的ID,然后再手工添加ItemTemplate。 不管你决定使用哪种方式,反正最后你的FormView的声明标记代码应该像下面这个样子: 1<asp:FormView ID="FormView1" runat="server" DataSourceID="ObjectDataSource1">2 <ItemTemplate>3 4 ItemTemplate>5asp:FormView> 花点儿时间到FormView的智能标签中勾上“启用分页(Enable Paging)”复选框,这样可以在FormView的声明标记代码中加上AllowPaging="True"这么一个属性(attribute)。另外,把EnableViewState属性设置为false。 第二步:定义ItemTemplate的标记代码(MarkUp) 在将FormView绑定到ObjectDataSource控件并且将其配置为支持分页之后,我们就准备指定ItemTemplate的内容了。在本教程中,让我们将产品名称显示在一个中。跟着让我们使用将余下的产品属性显示在一个四列的表中,其中第一列和第三列用于显示产品属性的名称,第二列和第四列用于显示产品属性的值。 在设计器中通过FormView的模板编辑界面或是在源视图中手工输入代码都可以添加上面所说的这些标记代码。使用模板的时候,我发现直接在源视图中编代码会来得比较快,不过你可以使用任何一种让你觉得够爽的方式。 下面的声明标记代码展示了FormView在完成了ItemTemplate的结构之后所应该有的样子: 1<asp:FormView ID="FormView1" runat="server" DataSourceID="ObjectDataSource1" AllowPaging="True" EnableViewState="False"> 2 <ItemTemplate> 3 <hr /> 4asp:FormView> 注意这个数据绑定语法——以<%# Eval("ProductName") %>为例——可以直接插入到模板的输出中。那是因为它没有必要绑定到一个Label控件的Text属性上。举个例子,比如我们要将ProductName的值使用<%# Eval("ProductName") %>来显示在一个元素中,那么产品“Chai”将被输出为Chai。 CSS类ProductPropertyLabel和ProductPropertyValue用于指定中的产品属性的名称和值的样式。这些CSS类定义在Styles.css中,它们使产品属性的名称粗体显示并且右对齐,它们还给产品属性的值加上一个右填充。 由于FormView没有CheckBoxField,要将Discontinued的值显示为一个CheckBox的话,我们就必须自己添加一个CheckBox控件。将这个CheckBox控件的Enabled属性设置为false以使其只读,并将其Checked属性绑定到Discontinued字段上去。 完成了ItemTemplate之后,产品信息就以一种更加不规则的方式来显示了。来比较一下上一节中的DetailsView的输出(图三)和本节所讨论的FormView的输出(图四)。 图三:生硬的DetailsView输出 图四:柔和的FormView输出 总结 虽然GridView和DetailsView控件可以使用TemplateField来自定义它们的输出,不过它们都呈现为一种格子一样的四四方方的样子。在那些需要使用一种不规则的外观来显示一个单独的记录的时候,FormView就是一个理想的选择。跟DetailsView一样,FormView从它的DataSource中显示一个单独的记录。不过它也有跟DetailsView不同的地方,它仅由模板组成,而且它根本不支持字段(fields。译者注:比如说CheckBoxField)。 就像我们在本节中看到的那样,在显示一个单独的记录的时候,FormView提供了一种更加复杂的的呈现方式。在今后的教程中我们将解释一下DataList和Repeater控件,它们可以提供跟FormView一样复杂的呈现,不过它们可以显示多列(就像GridView那样)。 编程愉快! 关于作者 Scott Mitchell,著有六本ASP/ASP.NET方面的书,是4GuysFromRolla.com的创始人,自1998年以来一直应用微软Web技术。Scott是个独立的技术咨询顾问,培训师,作家,最近完成了将由Sams出版社出版的新作,24小时内精通ASP.NET 2.0。他的联系电邮为mitchell@4guysfromrolla.com,也可以通过他的博客http://ScottOnWriting.NET与他联系。 asp.net view c# grid header insert html label text 写下你的评论吧 ! 吐个槽吧,看都看了 会员登录 | 用户注册 推荐阅读 int 深入解析JQuery Mobile特有的事件与方法 本文详细介绍了JQuery Mobile框架中特有的事件和方法,帮助开发者更好地理解和应用这些特性,提升移动Web开发的效率。 ... [详细] 蜡笔小新 2024-11-21 14:24:21 ip Python3爬虫入门:pyspider的基本使用[python爬虫入门] Python学习网有大量免费的Python入门教程,欢迎大家来学习。本文主要通过爬取去哪儿网的旅游攻略来给大家介绍pyspid ... [详细] 蜡笔小新 2024-11-22 18:00:41 int HDU 6116 路径计数优化 本文探讨了使用普通生成函数和指数生成函数解决组合与排列问题的方法,特别是在处理特定路径计数问题时的应用。文章通过详细分析和代码实现,展示了如何高效地计算在给定条件下不相邻相同元素的排列数量。 ... [详细] 蜡笔小新 2024-11-22 13:11:20 int Singleton单例模式和DoubleChecked Locking双重检查锁定模式 问题描述现在,不管开发一个多大的系统(至少我现在的部门是这样的),都会带一个日志功能;在实际开发过程中 ... [详细] 蜡笔小新 2024-11-21 15:14:45 int C#教程:递归构建父子关系的树结构 本教程介绍如何在C#中通过递归方法将具有父子关系的列表转换为树形结构。我们将详细探讨如何处理字符串类型的键值,并提供一个实用的示例。 ... [详细] 蜡笔小新 2024-11-20 11:31:55 int 循环双链表中指定位置的元素插入方法 本文详细介绍了如何在循环双链表的指定位置插入新元素的方法,包括必要的步骤和代码示例。 ... [详细] 蜡笔小新 2024-11-20 06:48:26 int Spring与Quartz结合实现周期性任务调度 本文介绍了一个使用Spring框架和Quartz调度器实现每周定时调用Web服务获取数据的小项目。通过详细配置Spring XML文件,展示了如何设置定时任务以及解决可能遇到的自动注入问题。 ... [详细] 蜡笔小新 2024-11-19 19:14:50 int D17:C#设计模式之十六观察者模式(Observer Pattern)【行为型】 一、引言今天是2017年11月份的最后一天,也就是2017年11月30日,利用今天再写一个模式,争取下个月(也就是12月份& ... [详细] 蜡笔小新 2024-11-22 19:45:55 int 解析 .NET 中的 AJAX 技术 Asynchronous JavaScript and XML (AJAX) 的流行很大程度上得益于 Google 在其产品如 Google Suggest 和 Google Maps 中的应用。本文将深入探讨 AJAX 在 .NET 环境下的工作原理及其实现方法。 ... [详细] 蜡笔小新 2024-11-22 18:18:57 ip 如何在没有提交按钮的情况下提交HTML表单? 探讨了在HTML表单中使用元素代替进行表单提交的方法。 ... [详细] 蜡笔小新 2024-11-22 17:48:42 ip 使用RxJS在AngularJS中区分单击与拖动操作 本文探讨了如何利用RxJS库在AngularJS应用中实现对用户单击和拖动操作的精确区分,特别是在调整区域大小的场景下。 ... [详细] 蜡笔小新 2024-11-22 11:56:41 utf-8 php + layui 文件上传 以及 拖拽上传 HTML: 将文件拖拽到此区域 ... [详细] 蜡笔小新 2024-11-20 14:27:32 int c语言二元插值,二维线性插值c语言 c语言二元插值,二维线性插值c语言 ... [详细] 蜡笔小新 2024-11-20 12:20:16 int Java实现优先队列:二叉堆详解 本文详细介绍了二叉堆的概念及其在Java中的实现方法。二叉堆是一种特殊的完全二叉树,具有堆性质,常用于实现优先队列。 ... [详细] 蜡笔小新 2024-11-19 12:52:35 int spring(22)JdbcTemplate 2019独角兽企业重金招聘Python工程师标准###1.导入jar包,必须jar包:c3p0、mysql-connector、beans、con ... [详细] 蜡笔小新 2024-11-18 19:49:32 阿魏空荡荡 这个家伙很懒,什么也没留下! Tags | 热门标签 text hashcode dagger command timezone export post web javascript node.js subset php7 integer format join golang erlang vbscript filter expression tags express replace ip int scala blob hashset utf-8 md5 RankList | 热门文章 1信息安全_20155323刘威良 《信息安全系统设计基础》课程总结 2深夜惊魂!2分钟内农行卡内7万多被分三次盗刷 3请问在传统的开发模式MVC下,增加Entity实体类有哪些好处和优点? 4emacs中的Ctrl-backspace删除太多 5[Linux 驱动] class_create()、device_create()、register_chrdev() 三个函数的说明 (自动创建设备节点) 6使用Tuimgs在线工具对图片无损压缩教程 7外部页面在refresh-jquery mobile上消失 8win7系统c盘空间越来越小的解决教程 9access中过滤特殊字符“[” 10教你怎么装win7系统 11如何做好ERP数据迁移? 12新版升级后,我的免费虚拟机找不到了? 13WIFI之点对点连接的方法 14SeeDAO 大理:SeeShore 装扮征集! 15戚继光使用“三才阵”对付日本倭寇,杀敌一千自损三人,请问这个阵型的优势在哪? PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具 Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有
图一:FormView打破了DetailsView的那种格子一样外观
第一步:将数据绑定到FormView
打开FormView.aspx页面,并从工具箱中拖一个FormView到设计器中。FormView刚刚添加到页面上时,它就是一个灰色的方块,这就告诉我们它需要一个ItemTemplate。
图二:FormView在添加一个ItemTemplate之前是不会在设计器中呈现出来的
可以手工编写代码(在源视图中)来添加ItemTemplate,也可以通过在设计器中将FormView绑定到一个数据源控件上来实现自动添加。这个自动生成的ItemTemplate包含了用于显示各字段的名称的HTML代码,还有用于显示各字段的值的Label控件,当然了,这些Label控件的Text属性都已经绑定到了各相应的字段上。这个操作也同时生成了InsertItemTemplate和EditItemTemplate,它们为数据源控件的每一个字段都呈现了一个输入控件。
如果你想要自动生成模板,首先应该使用ProductsBLL类的GetProducts()方法来给FormView添加一个ObjectDataSource控件,通过FormView的智能标签你就可以做到上面的这个操作。这样就可以创建一个带有ItemTemplate、InsertItemTemplate和EditItemTemplate的FormView了。在源视图中,删除InsertItemTemplate和EditItemTemplate,因为我们现在对创建一个可编辑和可插入的FormView并不感兴趣。然后,清空ItemTemplate中的标记语言代码,这样我才可以工作于一个干净的环境上。
如果你喜欢手工建立ItemTemplate,你可以从工具箱中拖一个ObjectDataSource到设计器中并配置它,这里可不要在设计器中为FormView添加数据源。我们应该到源视图中手工的将ForView的DataSourceID属性设置为ObjectDataSource的ID,然后再手工添加ItemTemplate。
不管你决定使用哪种方式,反正最后你的FormView的声明标记代码应该像下面这个样子:
花点儿时间到FormView的智能标签中勾上“启用分页(Enable Paging)”复选框,这样可以在FormView的声明标记代码中加上AllowPaging="True"这么一个属性(attribute)。另外,把EnableViewState属性设置为false。
第二步:定义ItemTemplate的标记代码(MarkUp)
在将FormView绑定到ObjectDataSource控件并且将其配置为支持分页之后,我们就准备指定ItemTemplate的内容了。在本教程中,让我们将产品名称显示在一个中。跟着让我们使用将余下的产品属性显示在一个四列的表中,其中第一列和第三列用于显示产品属性的名称,第二列和第四列用于显示产品属性的值。 在设计器中通过FormView的模板编辑界面或是在源视图中手工输入代码都可以添加上面所说的这些标记代码。使用模板的时候,我发现直接在源视图中编代码会来得比较快,不过你可以使用任何一种让你觉得够爽的方式。 下面的声明标记代码展示了FormView在完成了ItemTemplate的结构之后所应该有的样子: 1<asp:FormView ID="FormView1" runat="server" DataSourceID="ObjectDataSource1" AllowPaging="True" EnableViewState="False"> 2 <ItemTemplate> 3 <hr /> 4asp:FormView> 注意这个数据绑定语法——以<%# Eval("ProductName") %>为例——可以直接插入到模板的输出中。那是因为它没有必要绑定到一个Label控件的Text属性上。举个例子,比如我们要将ProductName的值使用<%# Eval("ProductName") %>来显示在一个元素中,那么产品“Chai”将被输出为Chai。 CSS类ProductPropertyLabel和ProductPropertyValue用于指定中的产品属性的名称和值的样式。这些CSS类定义在Styles.css中,它们使产品属性的名称粗体显示并且右对齐,它们还给产品属性的值加上一个右填充。 由于FormView没有CheckBoxField,要将Discontinued的值显示为一个CheckBox的话,我们就必须自己添加一个CheckBox控件。将这个CheckBox控件的Enabled属性设置为false以使其只读,并将其Checked属性绑定到Discontinued字段上去。 完成了ItemTemplate之后,产品信息就以一种更加不规则的方式来显示了。来比较一下上一节中的DetailsView的输出(图三)和本节所讨论的FormView的输出(图四)。 图三:生硬的DetailsView输出 图四:柔和的FormView输出 总结 虽然GridView和DetailsView控件可以使用TemplateField来自定义它们的输出,不过它们都呈现为一种格子一样的四四方方的样子。在那些需要使用一种不规则的外观来显示一个单独的记录的时候,FormView就是一个理想的选择。跟DetailsView一样,FormView从它的DataSource中显示一个单独的记录。不过它也有跟DetailsView不同的地方,它仅由模板组成,而且它根本不支持字段(fields。译者注:比如说CheckBoxField)。 就像我们在本节中看到的那样,在显示一个单独的记录的时候,FormView提供了一种更加复杂的的呈现方式。在今后的教程中我们将解释一下DataList和Repeater控件,它们可以提供跟FormView一样复杂的呈现,不过它们可以显示多列(就像GridView那样)。 编程愉快! 关于作者 Scott Mitchell,著有六本ASP/ASP.NET方面的书,是4GuysFromRolla.com的创始人,自1998年以来一直应用微软Web技术。Scott是个独立的技术咨询顾问,培训师,作家,最近完成了将由Sams出版社出版的新作,24小时内精通ASP.NET 2.0。他的联系电邮为mitchell@4guysfromrolla.com,也可以通过他的博客http://ScottOnWriting.NET与他联系。 asp.net view c# grid header insert html label text 写下你的评论吧 ! 吐个槽吧,看都看了 会员登录 | 用户注册 推荐阅读 int 深入解析JQuery Mobile特有的事件与方法 本文详细介绍了JQuery Mobile框架中特有的事件和方法,帮助开发者更好地理解和应用这些特性,提升移动Web开发的效率。 ... [详细] 蜡笔小新 2024-11-21 14:24:21 ip Python3爬虫入门:pyspider的基本使用[python爬虫入门] Python学习网有大量免费的Python入门教程,欢迎大家来学习。本文主要通过爬取去哪儿网的旅游攻略来给大家介绍pyspid ... [详细] 蜡笔小新 2024-11-22 18:00:41 int HDU 6116 路径计数优化 本文探讨了使用普通生成函数和指数生成函数解决组合与排列问题的方法,特别是在处理特定路径计数问题时的应用。文章通过详细分析和代码实现,展示了如何高效地计算在给定条件下不相邻相同元素的排列数量。 ... [详细] 蜡笔小新 2024-11-22 13:11:20 int Singleton单例模式和DoubleChecked Locking双重检查锁定模式 问题描述现在,不管开发一个多大的系统(至少我现在的部门是这样的),都会带一个日志功能;在实际开发过程中 ... [详细] 蜡笔小新 2024-11-21 15:14:45 int C#教程:递归构建父子关系的树结构 本教程介绍如何在C#中通过递归方法将具有父子关系的列表转换为树形结构。我们将详细探讨如何处理字符串类型的键值,并提供一个实用的示例。 ... [详细] 蜡笔小新 2024-11-20 11:31:55 int 循环双链表中指定位置的元素插入方法 本文详细介绍了如何在循环双链表的指定位置插入新元素的方法,包括必要的步骤和代码示例。 ... [详细] 蜡笔小新 2024-11-20 06:48:26 int Spring与Quartz结合实现周期性任务调度 本文介绍了一个使用Spring框架和Quartz调度器实现每周定时调用Web服务获取数据的小项目。通过详细配置Spring XML文件,展示了如何设置定时任务以及解决可能遇到的自动注入问题。 ... [详细] 蜡笔小新 2024-11-19 19:14:50 int D17:C#设计模式之十六观察者模式(Observer Pattern)【行为型】 一、引言今天是2017年11月份的最后一天,也就是2017年11月30日,利用今天再写一个模式,争取下个月(也就是12月份& ... [详细] 蜡笔小新 2024-11-22 19:45:55 int 解析 .NET 中的 AJAX 技术 Asynchronous JavaScript and XML (AJAX) 的流行很大程度上得益于 Google 在其产品如 Google Suggest 和 Google Maps 中的应用。本文将深入探讨 AJAX 在 .NET 环境下的工作原理及其实现方法。 ... [详细] 蜡笔小新 2024-11-22 18:18:57 ip 如何在没有提交按钮的情况下提交HTML表单? 探讨了在HTML表单中使用元素代替进行表单提交的方法。 ... [详细] 蜡笔小新 2024-11-22 17:48:42 ip 使用RxJS在AngularJS中区分单击与拖动操作 本文探讨了如何利用RxJS库在AngularJS应用中实现对用户单击和拖动操作的精确区分,特别是在调整区域大小的场景下。 ... [详细] 蜡笔小新 2024-11-22 11:56:41 utf-8 php + layui 文件上传 以及 拖拽上传 HTML: 将文件拖拽到此区域 ... [详细] 蜡笔小新 2024-11-20 14:27:32 int c语言二元插值,二维线性插值c语言 c语言二元插值,二维线性插值c语言 ... [详细] 蜡笔小新 2024-11-20 12:20:16 int Java实现优先队列:二叉堆详解 本文详细介绍了二叉堆的概念及其在Java中的实现方法。二叉堆是一种特殊的完全二叉树,具有堆性质,常用于实现优先队列。 ... [详细] 蜡笔小新 2024-11-19 12:52:35 int spring(22)JdbcTemplate 2019独角兽企业重金招聘Python工程师标准###1.导入jar包,必须jar包:c3p0、mysql-connector、beans、con ... [详细] 蜡笔小新 2024-11-18 19:49:32 阿魏空荡荡 这个家伙很懒,什么也没留下! Tags | 热门标签 text hashcode dagger command timezone export post web javascript node.js subset php7 integer format join golang erlang vbscript filter expression tags express replace ip int scala blob hashset utf-8 md5 RankList | 热门文章 1信息安全_20155323刘威良 《信息安全系统设计基础》课程总结 2深夜惊魂!2分钟内农行卡内7万多被分三次盗刷 3请问在传统的开发模式MVC下,增加Entity实体类有哪些好处和优点? 4emacs中的Ctrl-backspace删除太多 5[Linux 驱动] class_create()、device_create()、register_chrdev() 三个函数的说明 (自动创建设备节点) 6使用Tuimgs在线工具对图片无损压缩教程 7外部页面在refresh-jquery mobile上消失 8win7系统c盘空间越来越小的解决教程 9access中过滤特殊字符“[” 10教你怎么装win7系统 11如何做好ERP数据迁移? 12新版升级后,我的免费虚拟机找不到了? 13WIFI之点对点连接的方法 14SeeDAO 大理:SeeShore 装扮征集! 15戚继光使用“三才阵”对付日本倭寇,杀敌一千自损三人,请问这个阵型的优势在哪? PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具 Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有
在设计器中通过FormView的模板编辑界面或是在源视图中手工输入代码都可以添加上面所说的这些标记代码。使用模板的时候,我发现直接在源视图中编代码会来得比较快,不过你可以使用任何一种让你觉得够爽的方式。
下面的声明标记代码展示了FormView在完成了ItemTemplate的结构之后所应该有的样子:
注意这个数据绑定语法——以<%# Eval("ProductName") %>为例——可以直接插入到模板的输出中。那是因为它没有必要绑定到一个Label控件的Text属性上。举个例子,比如我们要将ProductName的值使用<%# Eval("ProductName") %>来显示在一个元素中,那么产品“Chai”将被输出为Chai。
CSS类ProductPropertyLabel和ProductPropertyValue用于指定中的产品属性的名称和值的样式。这些CSS类定义在Styles.css中,它们使产品属性的名称粗体显示并且右对齐,它们还给产品属性的值加上一个右填充。 由于FormView没有CheckBoxField,要将Discontinued的值显示为一个CheckBox的话,我们就必须自己添加一个CheckBox控件。将这个CheckBox控件的Enabled属性设置为false以使其只读,并将其Checked属性绑定到Discontinued字段上去。 完成了ItemTemplate之后,产品信息就以一种更加不规则的方式来显示了。来比较一下上一节中的DetailsView的输出(图三)和本节所讨论的FormView的输出(图四)。 图三:生硬的DetailsView输出 图四:柔和的FormView输出 总结 虽然GridView和DetailsView控件可以使用TemplateField来自定义它们的输出,不过它们都呈现为一种格子一样的四四方方的样子。在那些需要使用一种不规则的外观来显示一个单独的记录的时候,FormView就是一个理想的选择。跟DetailsView一样,FormView从它的DataSource中显示一个单独的记录。不过它也有跟DetailsView不同的地方,它仅由模板组成,而且它根本不支持字段(fields。译者注:比如说CheckBoxField)。 就像我们在本节中看到的那样,在显示一个单独的记录的时候,FormView提供了一种更加复杂的的呈现方式。在今后的教程中我们将解释一下DataList和Repeater控件,它们可以提供跟FormView一样复杂的呈现,不过它们可以显示多列(就像GridView那样)。 编程愉快! 关于作者 Scott Mitchell,著有六本ASP/ASP.NET方面的书,是4GuysFromRolla.com的创始人,自1998年以来一直应用微软Web技术。Scott是个独立的技术咨询顾问,培训师,作家,最近完成了将由Sams出版社出版的新作,24小时内精通ASP.NET 2.0。他的联系电邮为mitchell@4guysfromrolla.com,也可以通过他的博客http://ScottOnWriting.NET与他联系。 asp.net view c# grid header insert html label text 写下你的评论吧 ! 吐个槽吧,看都看了 会员登录 | 用户注册 推荐阅读 int 深入解析JQuery Mobile特有的事件与方法 本文详细介绍了JQuery Mobile框架中特有的事件和方法,帮助开发者更好地理解和应用这些特性,提升移动Web开发的效率。 ... [详细] 蜡笔小新 2024-11-21 14:24:21 ip Python3爬虫入门:pyspider的基本使用[python爬虫入门] Python学习网有大量免费的Python入门教程,欢迎大家来学习。本文主要通过爬取去哪儿网的旅游攻略来给大家介绍pyspid ... [详细] 蜡笔小新 2024-11-22 18:00:41 int HDU 6116 路径计数优化 本文探讨了使用普通生成函数和指数生成函数解决组合与排列问题的方法,特别是在处理特定路径计数问题时的应用。文章通过详细分析和代码实现,展示了如何高效地计算在给定条件下不相邻相同元素的排列数量。 ... [详细] 蜡笔小新 2024-11-22 13:11:20 int Singleton单例模式和DoubleChecked Locking双重检查锁定模式 问题描述现在,不管开发一个多大的系统(至少我现在的部门是这样的),都会带一个日志功能;在实际开发过程中 ... [详细] 蜡笔小新 2024-11-21 15:14:45 int C#教程:递归构建父子关系的树结构 本教程介绍如何在C#中通过递归方法将具有父子关系的列表转换为树形结构。我们将详细探讨如何处理字符串类型的键值,并提供一个实用的示例。 ... [详细] 蜡笔小新 2024-11-20 11:31:55 int 循环双链表中指定位置的元素插入方法 本文详细介绍了如何在循环双链表的指定位置插入新元素的方法,包括必要的步骤和代码示例。 ... [详细] 蜡笔小新 2024-11-20 06:48:26 int Spring与Quartz结合实现周期性任务调度 本文介绍了一个使用Spring框架和Quartz调度器实现每周定时调用Web服务获取数据的小项目。通过详细配置Spring XML文件,展示了如何设置定时任务以及解决可能遇到的自动注入问题。 ... [详细] 蜡笔小新 2024-11-19 19:14:50 int D17:C#设计模式之十六观察者模式(Observer Pattern)【行为型】 一、引言今天是2017年11月份的最后一天,也就是2017年11月30日,利用今天再写一个模式,争取下个月(也就是12月份& ... [详细] 蜡笔小新 2024-11-22 19:45:55 int 解析 .NET 中的 AJAX 技术 Asynchronous JavaScript and XML (AJAX) 的流行很大程度上得益于 Google 在其产品如 Google Suggest 和 Google Maps 中的应用。本文将深入探讨 AJAX 在 .NET 环境下的工作原理及其实现方法。 ... [详细] 蜡笔小新 2024-11-22 18:18:57 ip 如何在没有提交按钮的情况下提交HTML表单? 探讨了在HTML表单中使用元素代替进行表单提交的方法。 ... [详细] 蜡笔小新 2024-11-22 17:48:42 ip 使用RxJS在AngularJS中区分单击与拖动操作 本文探讨了如何利用RxJS库在AngularJS应用中实现对用户单击和拖动操作的精确区分,特别是在调整区域大小的场景下。 ... [详细] 蜡笔小新 2024-11-22 11:56:41 utf-8 php + layui 文件上传 以及 拖拽上传 HTML: 将文件拖拽到此区域 ... [详细] 蜡笔小新 2024-11-20 14:27:32 int c语言二元插值,二维线性插值c语言 c语言二元插值,二维线性插值c语言 ... [详细] 蜡笔小新 2024-11-20 12:20:16 int Java实现优先队列:二叉堆详解 本文详细介绍了二叉堆的概念及其在Java中的实现方法。二叉堆是一种特殊的完全二叉树,具有堆性质,常用于实现优先队列。 ... [详细] 蜡笔小新 2024-11-19 12:52:35 int spring(22)JdbcTemplate 2019独角兽企业重金招聘Python工程师标准###1.导入jar包,必须jar包:c3p0、mysql-connector、beans、con ... [详细] 蜡笔小新 2024-11-18 19:49:32 阿魏空荡荡 这个家伙很懒,什么也没留下! Tags | 热门标签 text hashcode dagger command timezone export post web javascript node.js subset php7 integer format join golang erlang vbscript filter expression tags express replace ip int scala blob hashset utf-8 md5 RankList | 热门文章 1信息安全_20155323刘威良 《信息安全系统设计基础》课程总结 2深夜惊魂!2分钟内农行卡内7万多被分三次盗刷 3请问在传统的开发模式MVC下,增加Entity实体类有哪些好处和优点? 4emacs中的Ctrl-backspace删除太多 5[Linux 驱动] class_create()、device_create()、register_chrdev() 三个函数的说明 (自动创建设备节点) 6使用Tuimgs在线工具对图片无损压缩教程 7外部页面在refresh-jquery mobile上消失 8win7系统c盘空间越来越小的解决教程 9access中过滤特殊字符“[” 10教你怎么装win7系统 11如何做好ERP数据迁移? 12新版升级后,我的免费虚拟机找不到了? 13WIFI之点对点连接的方法 14SeeDAO 大理:SeeShore 装扮征集! 15戚继光使用“三才阵”对付日本倭寇,杀敌一千自损三人,请问这个阵型的优势在哪? PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具 Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有
由于FormView没有CheckBoxField,要将Discontinued的值显示为一个CheckBox的话,我们就必须自己添加一个CheckBox控件。将这个CheckBox控件的Enabled属性设置为false以使其只读,并将其Checked属性绑定到Discontinued字段上去。
完成了ItemTemplate之后,产品信息就以一种更加不规则的方式来显示了。来比较一下上一节中的DetailsView的输出(图三)和本节所讨论的FormView的输出(图四)。
图三:生硬的DetailsView输出
图四:柔和的FormView输出
总结
虽然GridView和DetailsView控件可以使用TemplateField来自定义它们的输出,不过它们都呈现为一种格子一样的四四方方的样子。在那些需要使用一种不规则的外观来显示一个单独的记录的时候,FormView就是一个理想的选择。跟DetailsView一样,FormView从它的DataSource中显示一个单独的记录。不过它也有跟DetailsView不同的地方,它仅由模板组成,而且它根本不支持字段(fields。译者注:比如说CheckBoxField)。
就像我们在本节中看到的那样,在显示一个单独的记录的时候,FormView提供了一种更加复杂的的呈现方式。在今后的教程中我们将解释一下DataList和Repeater控件,它们可以提供跟FormView一样复杂的呈现,不过它们可以显示多列(就像GridView那样)。
编程愉快!
关于作者
Scott Mitchell,著有六本ASP/ASP.NET方面的书,是4GuysFromRolla.com的创始人,自1998年以来一直应用微软Web技术。Scott是个独立的技术咨询顾问,培训师,作家,最近完成了将由Sams出版社出版的新作,24小时内精通ASP.NET 2.0。他的联系电邮为mitchell@4guysfromrolla.com,也可以通过他的博客http://ScottOnWriting.NET与他联系。