下面是通过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参数进行相应数据的绑定