【问题标题】:How to show the Item Total using ASP.NET Eval instead of ModelBinding?如何使用 ASP.NET Eval 而不是 ModelBinding 显示项目总计?
【发布时间】:2016-01-10 18:28:25
【问题描述】:

我是新的 ASP.NET Web 窗体开发人员,我正在使用 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 语句,因为这行代码包含在绑定到 ObjectDatasSource 的 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 美元

而不是进行数学计算,我不知道为什么。 那么我该如何修复那行代码呢?

提前感谢您的帮助。

【问题讨论】:

    标签: c# asp.net gridview webforms


    【解决方案1】:

    您正在尝试在这里使用两个字符串值进行数学运算:

    <%# 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()))  %>
    

    【讨论】:

    • 感谢您的帮助和解释。我尝试了您建议的解决方案,但一开始对我不起作用。然后,在稍微修改后,它对我有用。正确的代码行是:&lt;%# String.Format("{0:C}", Double.Parse(DataBinder.Eval(Container.DataItem, "Quantity").ToString()) * Double.Parse(DataBinder.Eval(Container.DataItem, "TTSF_Product.UnitPrice").ToString())) %&gt;
    • 非常感谢您的帮助。
    【解决方案2】:

    这对我很有用..

    <%# String.Format("{0:C}", Double.Parse(DataBinder.Eval(Container.DataItem, "Quantity").ToString()) * Double.Parse(DataBinder.Eval(Container.DataItem, "TTSF_Product.UnitPrice").ToString())) %> 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-19
      • 2013-05-26
      • 1970-01-01
      • 1970-01-01
      • 2016-11-07
      • 1970-01-01
      相关资源
      最近更新 更多