0

我正在编写一个代码,我需要一个 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        |                 |           |
--------------------------------------------
4

3 回答 3

0

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

还阅读此线程中的解决方案。 http://forums.asp.net/t/1278588.aspx

于 2012-09-26T09:19:01.187 回答
0

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

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

另一种方式(我想要更多)您可以使用 linq 将列表(是数据表或其他列表)投影到一个新的匿名对象列表中,该列表具有原始列的属性以及为您额外列的计算属性. 然后您可以将网格数据绑定到您的投影列表。

于 2012-09-26T09:23:35.677 回答
0

看看你的数据在你的数据库中是否相同

然后你有一个非常简单的解决方案,通过放置一个 div 来保存 gridview 每一行的内容并给它一个样式,例如 color:blue; 像这样

于 2012-09-26T09:26:48.327 回答