神奇的 DataGrid (转)

本文探讨了ASP.NET DataGrid控件的高级用法,包括创建双层标题以提高报表的描述性和信息性,以及利用ItemCreated事件和BoundColumn的DataFormatString属性等技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

神奇的 DataGrid (转)[@more@]

数据绑定XML:namespace prefix = o ns = "urn:schemas-microsoft-com:Office:office" />

语言:C#.

技术:DataGrid,数据绑定

神奇的 DataGrid

揭示众多没有成文的可能用法的技巧

作者 Dino Esposito

即使你可能是新接触到ASP.NET编程和数据绑定,但你是完全有可能以数字图表的形式作出有价值的强大的DataGrid控件。简单说,它是把数据格式化为列表式、柱式的控件,它有着极端通用性和很高的可配置性。它自身就有强大的可编程的特征,虽然我已经有一年的使用经验,但我还没发现有不能放在DataGrid web控件表上的元素。我想和大家一起分享这些小技巧;其中一些甚至可称为“卑鄙的用法”。这些技巧涉及到对DataGrid控件的外表、感觉和它是怎么把信息呈现给用户

在深入之前,让我阐明可能会引起混淆的关键一点。.NET构架定义了两种风格迥异的DataGrid控件。它们有着相同的名字但属于不同的命名空间。更重要的是,它们除了名字相同之外没就有任何相同之处了。我在本文所讲的DataGrid控件是DataGrid Web控件,它是在System.Web.UI.WebControl 命名空间中被定义的。另外一个DataGrid控件是在Windonws窗体中的DataGrid控件,它是在System.windows.Forms命名空间中被定义的。它们在相当独立的两个方向发展,即使两者都试图提供一套共同的兼容能力和遵循相似编程模型。Windows窗体的DataGrid控件显示出许多Web DataGrid所不具有特性。同样的,你可以使用Web窗体的DataGrid控件做Windows窗体的DataGrid控件所不能的事。所以在阅读MSDN文档时,小心的查看你所阅读的是哪个控件。

在这篇文章中,我将会讨论并实现下列常遇到的情形的解决方案:

l  如何在最高一行上方建立两行标题,其中一行把相关的内容合在一起,使DataGrid成为更具描述性和信息性的表格。

对我们所要接触的DataGrid控件编程基础有ItemCreated ,BoundColumnDataFormatString属性和分页栏。

一个两行的标题

DataGrid控件允许你给绑定到控件上的每一列分配一个标题。标题的文字是使用column类的HeaderText属性。所有的column类,从BoundColumnTemplateColumn、从HyperlinkColumnButtonColumn都有一个HeaderText的属性。有这样一种情形,然而其中具有大量复杂的数据所以你需要用一个二级的标题显示。这个二级标题在列标题的上方。每一格把二个或更多的下面的列组合在一起。下面的HTML代码(图一)显示我的意思:

 

Group 1 Group 2

 

Col #1 Col #2

 

Col #3 Col #4

Contents of the table

 

图一:一个简单的两行标题的HTML表格。

在你有复杂的表格要显示时这个特性是相当重要的的,如:发票单,销售报告或统计单。如果你计划使用HTML或ASP来完成一个两行的标题是没有问题的。荒谬的是,当你是用ASP.net来实现它时它变成了技巧了。为了能实现专业的报告,最和情理的方法是使用DataGrid控件。不幸的是,DataGrid控件通过预定义的属性和委派,没有包含双标题的特性。在另一方面,使用DataGrid控件几乎是强制的,因为其它控件如:DataList或Repeater没有提供分页和排序功能,但这两个功能对于Web报告来说是很重要的。然而,如果分页和排序对你来说并不是重要的特征的话,DataList控件是你用来建立复杂标题的更简单的工具。

现在你将会看到如何使用sql SERVER2000的Northwind库中的employee表来建立一个报告,并且它是个人信息和工作相关信息清楚分开的报告。图二显示示例中的DataGrid控件怎样申明列的。

 

 

 " + ((DataRowView)Container.DataItem)

  ["lastname"] + ", " +

  ((DataRowView)Container.DataItem)["firstname"]  %>

 

 

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10752043/viewspace-992724/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/10752043/viewspace-992724/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值