我最近决定在一个电子商务网站上实施税收,这个网站我的目的是为了更多的乐趣,而且我遇到了绊脚石。
我的实施运作良好,税收正确应用等,但是一位好友今天向我指出,产品页面上的价格通常是含税的。
我在思考,而不是编辑业务和数据层,我可以在DataList本身上改变它,但我不能在我的生活中弄清楚我是如何实际做到的。我看过一些教科书并在网上搜索,但因为我实际上并不知道我在找什么,所以我被卡住了:(。
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();
E.g。如果数据库中的价格是5英镑,我需要在上面的数据表中显示为6英镑,其中包括当前英国增值税税率为20%。
所以: DBPrice * 1.2 = IncVatPrice
我希望这是有道理的!
提前致谢, 马特
答案 0 :(得分:0)
而不是
<%# Eval("Price", "{0:c}") %>
使用与
有些相似的表达式<%# String.Format("{0:c}", (Decimal)Eval("Price")*1.2) %>
或者在codebehind中实现一个函数:
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