下面是通过ProductsList.aspx页面通过点击某一项商品,页面跳转到ProductDetails.aspx商品详细信息的页面,如下图:
该页面有两个EntityDataSource、一个FormView和一个ListView控件,FormView控件通过数据绑定显示的是商品详细信息的列表
<!--商品详细信息列表-->
<asp:FormView ID="FormView_Product" runat="server"
DataKeyNames="ProductID" DataSourceID="EDS_Product">
<ItemTemplate>
<div class="ContentHead"><%# Eval("ModelName") %></div><br />
<table border="0">
<tr>
<td style="vertical-align: top;">
<img src='Catalog/Images/<%# Eval("ProductImage") %>'
border="0" alt='<%# Eval("ModelName") %>' />
</td>
<td style="vertical-align: top"><%# Eval("Description") %><br /><br /><br />
<uc1:AlsoPurchased ID="AlsoPurchased1" runat="server"
ProductId='<%# Eval("ProductID") %>' />
</td>
</tr>
</table>
<span class="UnitCost"><b>单价:</b> <%# Eval("UnitCost", "{0:c}")%><br /><span class="ModelNumber"><b>产品型号:</b> <%# Eval("ModelNumber") %></span><br /><a href='AddToCart.aspx?ProductID=<%# Eval("ProductID") %>'
style="border: 0 none white"><img src="~/Styles/Images/add_to_cart.gif" runat="server"
alt="" style="border-width: 0" /></a><br /><br /><div class="SubContentHead">评论</div><br />
<a id="ReviewList_AddReview" href="ReviewAdd.aspx?productID=<%# Eval("ProductID") %>">
<img runat="server" style="vertical-align: bottom" src="~/Styles/Images/review_this_product.gif" alt="" />
</a>
</ItemTemplate>
</asp:FormView>
该控件中还通过用户控件,显示了别人也购买了的商品显示,通过下面的代码
<%@ Register src="Controls/AlsoPurchased.ascx" tagname="AlsoPurchased" tagprefix="uc1" %>
可以将用户控件显示在相应位置。
ListView控件主要是将用户对于该商品的评论信息进行显示。下面是ListView控件的前台代码:
<asp:ListView ID="ListView_Comments" runat="server"
DataKeyNames="ReviewID,ProductID,Rating"
DataSourceID="EDS_CommentsList">
<ItemTemplate>
<tr style="background-color:#EDECB3;color: #000000;">
<td><%# Eval("CustomerName") %></td>
<td><img src='Styles/Images/reviewrating<%# Eval("Rating") %>.gif' alt=""><br /></td>
<td><%# Server.HtmlDecode(Eval("Comments").ToString())%></td>
</tr>
</ItemTemplate>
<AlternatingItemTemplate>
<tr style="background-color:#F8F8F8;">
<td><%# Eval("CustomerName") %></td>
<td><img src='Styles/Images/reviewrating<%# Eval("Rating") %>.gif' alt=""><br /></td>
<td><%# Server.HtmlDecode(Eval("Comments").ToString()) %></td>
</tr>
</AlternatingItemTemplate>
<EmptyDataTemplate>
<table runat="server" style="background-color: #FFFFFF;border-collapse: collapse;border-color: #999999;border-style:none;border-width:1px;">
<tr><td>没有任何关于该产品的评论.</td></tr>
</table>
</EmptyDataTemplate>
<LayoutTemplate>
<table runat="server">
<tr runat="server">
<td runat="server">
<table ID="itemPlaceholderContainer" runat="server" border="1" style="background-color: #FFFFFF;border-collapse: collapse;border-color: #999999;border-style:none;border-width:1px;font-family: Verdana, Arial, Helvetica, sans-serif;">
<tr runat="server" style="background-color:#DCDCDC;color: #000000;">
<th runat="server">客户</th>
<th runat="server">评级</th>
<th runat="server">评论</th>
</tr>
<tr ID="itemPlaceholder" runat="server"></tr>
</table>
</td>
</tr>
<tr runat="server">
<td runat="server" style="text-align: center;background-color: #CCCCCC;font-family: Verdana, Arial, Helvetica, sans-serif;color: #000000;">
<asp:DataPager ID="DataPager1" runat="server" PageSize="3">
<Fields><asp:NextPreviousPagerField ButtonType="Button" ShowFirstPageButton="True" ShowLastPageButton="True" /></Fields>
</asp:DataPager>
</td>
</tr>
</table>
</LayoutTemplate>
</asp:ListView>
用DataPager控件对用户评论的列表进行了分页.
上面所有的数据库连接都是通过了EntityDataSource指定数据源,然后通过Where将传入的QueryString参数进行相应数据的绑定