实现ASP.NET GridView复杂显示

时间:2012-09-26 09:12:11

标签: c# asp.net gridview

我正在编写一个代码,我需要一个GridView来显示,如下所示,我可以做的是显示列及其值从数据库中获取列,但无法以此格式显示数据。

我的程序从DB获取一个值作为Total显示为Amount 1,并使用该数量进行计算以填充其他Amount值并将两个值之间的差异显示为A:B

有什么想法吗?

--------------------------------------------
Total Amount |                 |           |       
--------------------------------------------
Amount 1     |    Amount/12 A  |           |
-------------------------------------------
Amount 2     |    Amount/12 B  |  A:B      |
-------------------------------------------
Amount 3     |    Amount/12 C  |  A:C      |
-------------------------------------------
Amount ..10  |    Amount/12 D  |  A:D      |
-------------------------------------------
Total        |                 |           |
--------------------------------------------

3 个答案:

答案 0 :(得分:0)

为此,您可以使用RowDataBound事件。下面是RowDataBound的链接。 http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.rowdatabound.aspx

也阅读了这个帖子中的解决方案。 http://forums.asp.net/t/1278588.aspx

答案 1 :(得分:0)

实际上我可以想到两种方法来做到这一点。

你要么采用丑陋的不直观的asp.net方式,要为网格的RowDataBound事件添加一个处理程序。在该处理程序中,如果成员变量为空,则将a值保存到成员变量。否则,如果成员变量是 unmtpy ,您将进行计算并将差异添加为单元格3中的新标签。

另一种方式(我更喜欢)你会使用linq将你的列表(是数据表或其他列表)投影到一个新的匿名对象列表中,该列表具有原始列的属性加上计算属性你额外的专栏。然后,您可以将网格数据绑定到预计列表。

答案 2 :(得分:0)

查看ur数据库中的ur数据是否相同

然后你有一个非常简单的解决方案,就是把div保持gridview每一行的内容并给它一个样式,例如color:blue;像这样