自定义 DataGrid 列:自定义 DataGrid BoundColumn,可在 DataGrid 页脚自动显示总和/平均值。并为 DataField 分配自定义数据类型。






1.84/5 (6投票s)
2007年2月14日
9分钟阅读

36142

296
我想展示一个示例,其中您可以找到 DataGrid 边界列的自定义设计。通常,我们的基本要求是以高性能的方式在页脚中显示值的总和与平均值。在这里,我创建了一个自定义列,并为其分配了自定义数据类型。
下载源代码 - 20.9 Kb引言
背景
DataGrid DataItemBound 事件
在这里,我设置了一个简单的 DataGrid,用于显示 Employee 表中的 EmpID、Name 和 Salary。
|
|
|
|
然后在代码隐藏中:
|
|
|
|
输出
注释
上面的代码没有问题。但是,让我们考虑一下有很多列包含数据,并且需要在页脚显示其值的总和。因此,使用自定义 DataGrid 列,我可以避免重复相同的代码。此解决方案提供了代码的可重用性和更高的灵活性。
自定义 SumColumn 和 AddressColumn
SumColumn 我分配了 decimal 数据字段,而 AddressColumn 我分配了自定义数据类型 Address。自定义数据类型 Address 如下所示
|
|
|
|
我创建了一个 Employee 类来存储员工信息:“Employee.cs”
|
|
我创建了一个名为“SumColumn.cs”的 SumColumn 类,它派生自 BoundColumn 类。
|
|
|
|
我还创建了一个 AddressColumn 类,它派生自 BoundColumn 类,用于如下自定义我的地址,类名为“AddressColumn.cs”。
|
|
我的 Aspx 页面如下:在此 ItemTemplate 中,我调用一个函数“ConcatnatFirstNameLastName(string,string)”,它将连接员工的名字和姓氏并给出员工姓名。此函数定义在 aspx 页面的代码隐藏中,并且其访问修饰符为 protected,private 无法访问。 | |
|
|
在代码隐藏中,我们将在 Page_Load 事件中执行以下操作: |
|
|
|
上述示例 DataClass 只是一个创建虚拟员工数据的类,GetEmpInfo() 方法返回一个包含员工记录的 ArrayList。
我认为上面的代码相当自明。
结论
在这个小例子中,我试图向您展示如何根据我们的要求以结构化且高性能的方式自定义我们的 DataGrid 列。这就是为什么我在这里提供了三个不同的示例,使用三个不同的列:“EmpName”,它通过连接员工的名字和姓氏来显示员工姓名;“Age”和“Salary”,它们是通过我们自己新的自定义列 SumColumn 实现的,该列派生自 BoundColumn,具有在 DataGrid 的页脚中显示列值总和/平均值的功能。这只是一个可重用 DataGrid 列的示例,您可以自行检查自己的应用程序,找出哪些可以很好地封装到自定义 DataGrid 列中。
注意
参考文献下载源代码 - 20.9 Kb下载源代码 - 20.9 Kb |