gridview、datalist、repeater、FormView、DetailsView的区别详解
1. GridView 控件
GridView 控件用于显示表中的数据。通过使用 GridView 控件,您可以显示、编辑、删除、排序和翻阅多种不同的数据源(包括数据库、XML 文件和公开数据的业务对象)中的表格数据。
显示表格数据是软件开发中的一个周期性任务。ASP.NET 提供了许多工具来在网格中显示表格数据,例如 GridView 控件。通过使用 GridView 控件,您可以显示、编辑和删除多种不同的数据源(例如数据库、XML 文件和公开数据的业务对象)中的数据。
可以使用 GridView 来完成以下操作:
通过数据源控件自动绑定和显示数据。
通过数据源控件对数据进行选择、排序、分页、编辑和删除。
另外,还可以通过以下方式自定义 GridView 控件的外观和行为:
指定自定义列和样式。
利用模板创建自定义用户界面 (UI) 元素。
通过处理事件将自己的代码添加到 GridView 控件的功能中。
1.1 使用 GridView 控件进行数据绑定
GridView 控件提供了两个用于绑定到数据的选项:
使用 DataSourceID 属性进行数据绑定,此选项让您能够将 GridView 控件绑定到数据源控件。建议使用此方法,因为它允许 GridView 控件利用数据源控件的功能并提供了内置的排序、分页和更新功能。
使用 DataSource 属性进行数据绑定,此选项使您能够绑定到包括 ADO.NET 数据集和数据读取器在内的各种对象。此方法需要为所有附加功能(如排序、分页和更新)编写代码。
当使用 DataSourceID 属性绑定到数据源时,GridView 控件支持双向数据绑定。除可以使该控件显示返回的数据之外,还可以使它自动支持对绑定数据的更新和删除操作。
1.2 在 GridView 控件中设置数据显示格式
可以指定 GridView 控件的行的布局、颜色、字体和对齐方式。可以指定行中包含的文本和数据的显示。另外,可以指定将数据行显示为项目、交替项、选择的项还是编辑模式项。GridView 控件还允许指定列的格式。
1.3 使用 GridView 控件编辑和删除数据
默认情况下,GridView 控件在只读模式下显示数据。但是,该控件还支持一种编辑模式,在该模式下控件显示一个包含可编辑控件(如 TextBox 或 CheckBox 控件)的行。您还可以对 GridView 控件进行配置以显示一个 Delete 按钮,用户可单击该按钮来删除数据源中相应的记录。
GridView 控件可对其关联数据源自动执行编辑和删除操作,使您无需编写代码即可启用编辑行为。或者,也可以以编程方式控制编辑和删除数据的过程(如在 GridView 控件绑定到只读数据源控件的情况下)。
您可以使用模板对当某个行处于编辑模式时使用的输入控件进行自定义。
1.4 GridView 排序功能
GridView 控件支持在不需要任何编程的情况下通过单个列排序。通过使用排序事件以及提供排序表达式,您可以进一步自定义 GridView 控件的排序功能。
1.5 GridView 分页功能
GridView 控件提供一种简单的分页功能。可以通过使用 GridView 控件的 PagerTemplate 属性来自定义 GridView 控件的分页功能。
适用场景
GridView 控件一般适用于以表的形式显示规则的二维关系数据。例如用于显示站点下所有用户的列表。
2. DataList 控件
DataList Web 服务器控件以可自定义的格式显示数据库行的信息。显示数据的格式在创建的模板中定义。可以为项、交替项、选定项和编辑项创建模板。标头、脚注和分隔符模板也用于自定义 DataList 的整体外观。通过在模板中包括 Web 服务器控件,可将列表项连接到代码,这些代码使用户得以在显示、选择和编辑模式之间进行切换。
DataList 与GridView不同,必须通过自定义的template 来显示数据项。DataList 与 GridView相比不支持排序,分页功能。
适用场景
DataList 一般适用于显示“单列多行”关系的数据,例如用于显示产品列表,每一个ListItem显示一件产品的信息,你可以为ListItem 定义自己需要的格式。
3. Repeater 控件
Repeater Web 服务器控件是一个容器控件,它使您可以从页的任何可用数据中创建出自定义列表。Repeater 控件不具备内置的呈现功能,这表示用户必须通过创建模板为 Repeater 控件提供布局。当该页运行时,Repeater 控件依次通过数据源中的记录,并为每个记录呈现一个项。
Repeater 控件与上述2 个控件相比显得最为单薄,Repeater 一般用于只读的数据,对数据呈现的列表不具备编辑,排序,分页等功能。
适用场景
功能非常单薄,它使用数据源返回的一组记录呈现只读列表。
4.DetailsView 控件
DetailsView 控件一次呈现一条表格形式的记录,并提供翻阅多条记录以及插入、更新和删除记录的功能。DetailsView 控件通常用在主/详细信息方案中,在这种方案中,主控件(如 GridView 控件)中的所选记录决定了 DetailsView 控件显示的记录。
5.FormView 控件
FormView 控件与 DetailsView 控件类似,它一次呈现数据源中的一条记录,并提供翻阅多条记录以及插入、更新和删除记录的功能。不过,FormView 控件与 DetailsView 控件之间的差别在于:DetailsView 控件使用基于表格的布局,在这种布局中,数据记录的每个字段都显示为控件中的一行。而 FormView 控件则不指定用于显示记录的预定义布局。实际上,您将创建包含控件的模板,以显示记录中的各个字段。该模板包含用于设置窗体布局的格式、控件和绑定表达式。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/wyaspnet/archive/2009/08/17/4454608.aspx
转载于:https://www.cnblogs.com/hellen-li/archive/2010/08/09/1795991.html
gridview、datalist、repeater、FormView、DetailsView的区别详解相关推荐
- DropDownList ListBox GridView DataList Repeater FormView DetailsView 数据绑定控件详解
asp.net夜话之八:数据绑定控件收藏 Author: 周金桥 Date: 2008-10-24 01:32 通过前面的例子我们看到每次我们要显示数据的时候都要通过一个循 ...
- 数据绑定控件收藏 DropDownList ListBox GridView DataList Repeater FormView DetailsView
通过前面的例子我们看到每次我们要显示数据的时候都要通过一个循环来显示满足条件的数据,这是一个比较麻烦的过程,为此微软定义了一系列的控件专门用于显示数据的格式,通过这些控件可以以可视化的方式查看绑定数据 ...
- GridView 中 Bind和Eval的区别详解
Eval()方法在运行时使用反射执行后期绑定计算,因此与标准的ASP.NET数据绑定方法bind相比,会导致性能明显下降.它一般用在绑定时需要格式化字符串的情况下.多数情况尽量少用此方法 Eval 方 ...
- HashTable和HashMap的区别详解
HashTable和HashMap的区别详解 一.HashMap简介 HashMap是基于哈希表实现的,每一个元素是一个key-value对,其内部通过单链表解决冲突问题,容量不足(超过了阀值)时,同 ...
- java mod %区别_Java中 % 与Math.floorMod() 区别详解
%为取余(rem),Math.floorMod()为取模(mod) 取余取模有什么区别呢? 对于整型数a,b来说,取模运算或者取余运算的方法都是: 1.求 整数商: c = a/b; 2.计算模或者余 ...
- 关于numpy中eye和identity的区别详解
https://www.jb51.net/article/175386.htm np.identity(n, dtype=None) np.eye(N, M=None, k=0, dtype=< ...
- php为什么需要配置路由器,laravel 配置路由 api和web定义的路由的区别详解
1.路由经过中间件方面不同 打开kerenl.php就可以看到区别 protected $middlewareGroups = [ 'web' => [ \App\Http\Middleware ...
- python协程详解_对Python协程之异步同步的区别详解
一下代码通过协程.多线程.多进程的方式,运行代码展示异步与同步的区别. import gevent import threading import multiprocessing # 这里展示同步和异 ...
- Jar/War/Ear等包的作用与区别详解
Jar/War/Ear等包的作用与区别详解 以客户角度来看,jar文件就是一种封装格式,用户不需要知道jar包中有多少个.class格式的文件及每个文件中的功能与作用,也可以得到相应的访问的结果.ja ...
最新文章
- IC攻城狮求职宝典 01 2018年IC设计企业 笔试题 01 英伟达(Nvidia)
- 未来,让我们一起想象 — “Imagine” 阿里云视频云全景创新峰会
- 玩转GIT系列之【如何配置GIT的用户名/密码/密钥】
- 华为p6电信版 android 4.5,华为P6电信版系统应用apk补全教程 完整EMUI
- leetcode159. 至多包含两个不同字符的最长子串
- python 学习2 /输入/ 输出 /列表 /字典
- [PY3]——IO——文件目录操作
- E-BERT: 电商领域语言模型优化实践
- android地球经纬度平面图,地球经纬度划分图高清 怎么划分经纬度
- 新加坡国立大学计算机系访学,从实践中来,到实践中去——记新加坡国立大学访学项目...
- LINUX DDR驱动知识(转)
- ipad上编程方法,服务器安装vscode
- 【MFC进阶】05文件处理CFile
- 嵌入式软件之裸板与驱动调试
- python朴素贝叶斯对wine_基于朴素贝叶斯对Wine数据集分类
- 项目成本相关计算总结
- 女儿说要看烟花,但是政府规定不能放,程序员爸爸默默的拿起了键盘,程序员就是要为所欲为!
- 64位ubuntu安装feiq
- 解决: Eclipse 提示内存不足
- AutoHotKey 操作鼠标进行移动托动点击
热门文章
- LeetCode Unique Binary Search Trees II(递归或者dp)
- UVa978 - Lemmings Battle!(优先级队列)
- [BZOJ1068/Luogu2470][SCOI2007]压缩
- 深入学习Redis(3):主从复制
- console.log 如何打印对象
- show processlist结果筛选(转)
- [WCF编程]2.SOA概述
- 【Oracle】逻辑结构(TableSpace→Segment→Extent→Block)
- VC中栈溢出/Stack overflow怎么办?
- JQuery实现Ajax功能