2011-02-06 18 views
0

私は最近、私が何かよりも楽しいために構築した電子商取引ウェブサイトに税金を課すことに決めました。ASP.NET Datalist calculateフィールド

私の実装はうまくいき、税金が正しく適用されていますが、今日、商品ページの価格は通常inc税金で表示されています。

私は、ビジネスとデータの層を編集するのではなく、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(); 

例:DBでの価格は£5であれば、私は20%の現在の英国のVAT率を含んでいるとして£6上記データリストに表示することを必要とするだろう

So: DBPrice * 1.2 = IncVatPrice

これは意味があると思う!事前に

おかげで、 マット

答えて

0

代わりの

<%# 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); 
} 

とその

<%# IncludeVat(Container.DataItem) %> 

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

ようなあなたのデータリストでそれを呼び出します