我有一个显示购物车的 ListView。在我添加 String.Format 以将 LineTotal 小数显示为货币字符串之前,它工作正常。当我刚刚在 LineTotal 上进行 Eval 时,它正在工作。
当我添加 String.Format 时,问题就出现了——它弄乱了代码隐藏。错误:输入字符串的格式不正确。
在 C# 中,我获取文本标签的值并在整个代码隐藏中使用它来执行诸如将产品的总价值(sum var)相加之类的事情。
我希望 PriceLabel 价格显示为货币,但也能够在我的 Listview 数据绑定函数中使用标签的值,以便我可以更新 sum var。
缩写项目模板:
<ItemTemplate>
<asp:Label ID="PriceLabel" runat="server" Text='<%# String.Format("{0:C}", Eval("LineTotal"))%>' ></asp:Label>
</ItemTemplate>
代码隐藏:
protected void ProductListView_ItemDataBound(object sender, ListViewItemEventArgs e)
{
if (e.Item.ItemType == ListViewItemType.DataItem)
{
//update subtotal by finding the label string value
Label lbl = (Label)e.Item.FindControl("PriceLabel") as Label;
decimal sublinetotal = Convert.ToDecimal(lbl.Text);// <---- Input error here
//update the sum var to show the total price on the page
sum += sublinetotal;
}
}