【问题标题】:ASP.NET Datalist calculate fieldASP.NET Datalist 计算字段
【发布时间】:2011-02-06 19:59:16
【问题描述】:

我最近决定对我建立的电子商务网站征税,但我遇到了一个绊脚石。

我的实现运行良好,税款应用正确等,但是今天有朋友向我指出,产品页面上的价格通常显示为含税。

我在想,与其编辑业务和数据层,我可以在 DataList 本身上更改它,但我终其一生都无法弄清楚我将如何实际做到这一点。我看过一些教科书并在网上搜索过,但因为我实际上不知道我在寻找什么,所以我被困住了:(。

数据列表:

<asp:DataList ID="list" runat="server" RepeatColumns="2" CssClass="ProductList" RepeatDirection="Horizontal" 
    Width="542px" EnableViewState="False" onitemcommand="list_ItemCommand">
<ItemTemplate>
<div style="width:271px;">
<h3 class="ProductName"><a href="<%# Link.ToProduct(Eval("ProductID").ToString()) %>"><%# HttpUtility.HtmlEncode(Eval("Name").ToString()) %></a></h3>
<a href="<%# Link.ToProduct(Eval("ProductID").ToString()) %>"><img width="100" border="0" src="<%# Link.ToProductImage(Eval("Thumbnail").ToString()) %>" alt='<%# HttpUtility.HtmlEncode(Eval("Name").ToString()) %>' /></a>
<%# HttpUtility.HtmlEncode(Eval("Description").ToString()) %>
<p>
<b>Price:</b>
<%# Eval("Price", "{0:c}") %>
</p>
<p>
<asp:Button ID="addToCartButton" runat="server" Text="Add to Basket" CommandArgument='<%# Eval("ProductID") %>' CssClass="SmallButtonText" />
</p>
</div>
</ItemTemplate>
</asp:DataList>

后面的代码:

    // Retrieve the list of products in a Sub Category
    list.DataSource = CatalogAccess.GetProductsInSubCategory(subCategoryId, page, out howManyPages);
    list.DataBind();

例如如果数据库中的价格为 5 英镑,我需要将其在上面的数据列表中显示为 6 英镑,其中包括当前英国 20% 的增值税率。

所以: DBPrice * 1.2 = IncVatPrice

我希望这是有道理的!

提前致谢, 马特

【问题讨论】:

    标签: asp.net datalist


    【解决方案1】:

    代替

    <%# Eval("Price", "{0:c}") %>
    

    使用类似于

    的表达式
    <%# String.Format("{0:c}", (Decimal)Eval("Price")*1.2) %>
    

    或者在代码隐藏中实现一个函数:

    protected string IncludeVat(object dataItem)
    {
      Decimal price = (Decimal)DataBinder.Eval(dataItem, "Price");
      return String.Format("{0:c}", price * 1.2);
    }
    

    然后像这样在你的 DataList 中调用它

    <%# IncludeVat(Container.DataItem) %>
    

    http://www.pluralsight-training.net/community/blogs/fritz/archive/2005/12/16/17507.aspx

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-17
      • 2012-10-11
      • 2017-07-25
      • 1970-01-01
      相关资源
      最近更新 更多