什么是ASP.NET DataGrid控件:完全模板化的网格
创始人
2024-04-26 19:01:32
0次

ASP.NET DataGrid控件呈现一个多列、完全模板化的网格,它是 .NET 框架中所有数据绑定 Web 控件中最通用和最灵活的控件。DataGrid 的用户界面在某种程度上类似于 Microsoft Excel 工作表。尽管 DataGrid 具有高级的编程接口以及完整的属性集,但是它只生成包含交错超级链接的 HTML 表,从而提供互操作功能(例如,排序和分页命令)。

使用 DataGrid 控件,可以创建简单的数据绑定列(显示从数据源检索的数据)、模板化列(允许您设计单元格内容的布局),***但也很重要的是基于命令的列(允许您向网格中添加特定的功能)。

DataGrid 控件很适合报告数据,而且其足够的灵活性允许您构建复杂且具有专业外观的数据表,在这些数据表中,可随意实现诸如分页和排序之类的功能。然而,其他功能(例如,深化和主/细)只需要较少的工作。在本月的专栏中,我将讨论一个无法由该控件本身提供、但是颇受许多人欢迎的功能。因此,让我们研究一下如何自动生成复杂的报表,在这些表中,必须显示具有部分合计的汇总行。

ASP.NET DataGrid控件

可通过设置 DataGrid 控件的 DataSource 属性来将实际数据绑定到该控件的实例。此属性是一般的 Object 类型,并且支持两个配置方案。通常用实现 ICollection 接口的数据对象来设置它。通常将使用 DataTable 和 DataView 对象。另一种方法是,用另一个对象类型(例如,data reader 对象)来设置它。不过,在这种情况下,必须打开自定义分页机制;否则将引发异常。简单地说,您要么将 DataGrid 绑定到分页数据源(即用来实现枚举数的集合对象),要么必须为自己提供分页。

对于 Web 控件,数据绑定处于启用状态,只有在调用 DataBind 方法时,用户界面才进行刷新。在刷新过程中,该控件会遍历数据源并将一些行复制到它的 Items 集合中。Items 属性代表当前显示页的内容。如果数据源支持分页(即,实现 ICollection),则 DataGrid 从 DataSource 选择适合当前页的正确行子集。否则,它假设 DataSource 的全部内容都适合当前页并将它们全部加载到 Items 中。在填充完 Items 之后,就会呈现该控件的用户界面。

此处有何教训?DataGrid 控件能够安全而又一致地显示的全部内容就是绑定数据源中包含的行。因此,如果您希望插入汇总行,以便按照公共键对某些记录进行分组并显示部分合计,则必须指出将这些汇总行直接插入数据源的方法。

然而,将汇总行插入数据源是不够的。实际上,必须能够区分汇总行和普通行,并用不同的视觉样式呈现前者。

在将数据附加到该控件之前,确保数据源包含其所需的所有汇总行。接着,挂钩 ItemCreated 事件,检测每个汇总行,然后用不同的布局和样式绘制它们。让我们看一看如何在 SQL 查询的不同行之间插入汇总行。我将使用基于 Northwind SQL Server 数据库的示例应用程序来阐释我的观点。该应用程序列出每个客户已在给定年份发出的所有定单。定单按年份和客户 ID 进行分组。对于每个客户,都额外有一行来汇总定单的总数和总额。

以上就介绍了ASP.NET DataGrid控件的基本知识。

【编辑推荐】

  1. ASP.NET的GridView与DataGrid控件比较浅析
  2. .NET新手指南:轻松自定义DataGridView控件
  3. C#中对DatagridView的部分常用操作
  4. ASP.net中将DataGrid的内容导出为excel文件
  5. DataGrid中的按钮反选事件

相关内容

热门资讯

PHP新手之PHP入门 PHP是一种易于学习和使用的服务器端脚本语言。只需要很少的编程知识你就能使用PHP建立一个真正交互的...
网络中立的未来 网络中立性是什... 《牛津词典》中对“网络中立”的解释是“电信运营商应秉持的一种原则,即不考虑来源地提供所有内容和应用的...
各种千兆交换机的数据接口类型详... 千兆交换机有很多值得学习的地方,这里我们主要介绍各种千兆交换机的数据接口类型,作为局域网的主要连接设...
粉嫩如何诠释霸道 东芝M805... “霸道粉”是个什么玩意东芝M805拿过来的时候,笔者扑哧笑了,不是笑这款笔记本,而是笑这款产品的颜色...
什么是大数据安全 什么是大数据... 在《为什么需要大数据安全分析》一文中,我们已经阐述了一个重要观点,即:安全要素信息呈现出大数据的特征...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
全面诠释网络负载均衡 负载均衡的出现大大缓解了服务器的压力,更是有效的利用了资源,提高了效率。那么我们现在来说一下网络负载...
如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
30分钟搞定iOS自定义相机 最近公司的项目中用到了相机,由于不用系统的相机,UI给的相机切图,必须自定义才可以。就花时间简单研究...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...