2011-02-06 6 views
0

저는 최근에 내가 무엇보다 재미있게 구축 한 전자 상거래 웹 사이트에 세금을 부과하기로 결정했습니다.ASP.NET Datalist 계산 필드

구현이 잘 작동하고 세금이 올바르게 적용되었지만 친구가 오늘 제품 페이지의 가격이 일반적으로 inc 세금으로 표시된다는 사실을 나에게 지적했습니다.

비즈니스 및 데이터 계층을 편집하는 대신 데이터 목록 자체에서이를 변경할 수는 있지만 실제로는 어떻게 할 수 있을지 생각할 수 없습니다. 나는 약간의 텍스트 책을보고 있었다 온라인으로 주변 검색을했지만, 실제로 내가 무엇을 찾고 모르기 때문에, 나는 :(붙어 한

데이터 목록 :.

<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> 
을 뒤에

코드 : DB의 가격은 £ 5, 나는 그것이 20 %의 현재 영국 VAT 율을 포함하는 등의 £ 6 위 DataList에 표시해야하는 것 인 경우

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

.

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

처럼하여 DataList에 전화