如何使用ASP.NET Eval而不是ModelBinding显示Item Total
本文关键字:ModelBinding 显示 Item Total 何使用 ASP NET Eval | 更新日期: 2023-09-27 18:29:53
我是新的ASP.NET Web Forms开发人员,正在使用ASP.NET 4.5。我现在正在努力将一个语句从使用ModelBinding转换为Eval,就像我使用ObjectDataSource一样。
ASP.NET代码行:
<asp:TemplateField HeaderText="Item Total">
<ItemTemplate>
<%#: String.Format("{0:c}", ((Convert.ToDouble(Item.Quantity)) * Convert.ToDouble(Item.Product.UnitPrice)))%>
</ItemTemplate>
</asp:TemplateField>
我不想使用ModelBinding并说Item.Quantity或Item.Product.UnitPrice,而是想使用Eval语句,因为这行代码包含在绑定到ObjectDataSource的ASP.NET GridView中。那么我该怎么做呢?
我试着这样做:
<asp:TemplateField HeaderText="Item Total">
<ItemTemplate>
<%# String.Format("{0:C}", Double.Parse(DataBinder.Eval(Container.DataItem, "Quantity").ToString())) %>
*
<%# String.Format("{0:C}", Double.Parse(DataBinder.Eval(Container.DataItem, "TTSF_Product.UnitPrice").ToString())) %>
</ItemTemplate>
</asp:TemplateField>
但不幸的是,它给了我以下结果:
4.00美元*22.50美元
而不是做数学计算,我不知道为什么那么我该如何修复这行代码呢
提前感谢您的帮助。
您正在尝试使用以下两个字符串值进行数学运算:
<%# String.Format("{0:C}", Double.Parse(DataBinder.Eval(Container.DataItem, "Quantity").ToString())) %>
*
<%# String.Format("{0:C}", Double.Parse(DataBinder.Eval(Container.DataItem, "TTSF_Product.UnitPrice").ToString())) %>
试试这样的东西:
<%# String.Format("{0:C}", (Double.Parse(DataBinder.Eval(Container.DataItem, "TTSF_Product.UnitPrice") * Double.Parse(DataBinder.Eval(Container.DataItem, "Quantity")).ToString())) %>
这对我来说很好。
<%# String.Format("{0:C}", Double.Parse(DataBinder.Eval(Container.DataItem, "Quantity").ToString()) * Double.Parse(DataBinder.Eval(Container.DataItem, "TTSF_Product.UnitPrice").ToString())) %>