【发布时间】:2013-07-11 22:48:31
【问题描述】:
我有点困惑为什么这不起作用,我可能做错了什么。
我有一个转发器,其金额列中有值,我想在转发器的页脚中显示此列的总计。
问题是 Total 总是显示 0 而不是将行的值相加。
代码隐藏
Protected Sub reCosts_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.RepeaterItemEventArgs) Handles reCosts.ItemDataBound
Dim rowView As System.Data.DataRowView
rowView = CType(e.Item.DataItem, System.Data.DataRowView)
Dim CostsTotal As Decimal
If e.Item.ItemType = ListItemType.Item OrElse e.Item.ItemType = ListItemType.AlternatingItem Then
Dim lCostAmount As Literal = CType(e.Item.FindControl("lCostAmount"), Literal)
Dim CostAmount As Decimal = rowView("Amount")
lCostAmount.Text = CostAmount.ToString("C2")
CostsTotal += CostAmount
ElseIf e.Item.ItemType = ListItemType.Footer Then
Dim lCostsTotal As Literal = CType(e.Item.FindControl("lCostsTotal"), Literal)
lCostsTotal.Text = CostsTotal.ToString("C2")
End If
End Sub
任何帮助将不胜感激。
J.
【问题讨论】:
-
如果要将
CostAmount添加到另一个Decimal,为什么要将它转换为String? -
这只是为了格式化为货币。虽然我在添加到我已删除的
CostTotal时将其转换为string,但没有对问题进行排序 -
你调试了吗?我想它可能会先打到页脚列表项类型,然后再进入其他页面并进行添加。所以你总是会得到零。改为使用会话对象对此进行测试,在数据绑定之后,将 lCostsTotal 设置为会话中的值。