dynamicweb11-1这个练习是一个完整的项目代码,页面较多,实现了购物车,登录等功能。项目根目录,创建文件夹App_Themes,其下创建文件夹PetShop1,内含1个文件。stylesheet1.css。根目录,创建文件夹Comm_Images,内含5张图片,button-cart.jpg,button-search.jpg,button-wishlist.jpg,home-fish.jpg,seahorse.jpg。图片呢我就不放了。根目录,创建文件夹Prod_Images,其下创建4个文件夹,Backyard,Birds,Bugs,Fish,每个文件夹下都有商品图片若干。图片我就放一个示例。asp.net动态web开发(021)_ico上代码:stylesheet1.css
  •  
/*********网页公共部分*********/*, html, body {    margin:0;    padding:0;}
body { background-color:#e3e5dc; margin:0; background-image:url("../../Comm_Images/bg-body.gif"); background-repeat:repeat-x;}
a:visited { color:#333333; text-decoration:none;}
a:hover { color:#1639a9; text-decoration:underline;}
a:link { color:#333333; text-decoration:none;}
.label { font-family:Arial,Helvetica,sans-serif; font-size:13px; color:#333333; margin-left:20px; margin-bottom:10px; text-align:left;}

/***********首页部分*************/.homeBody { background-color:#ffffff; margin:0; background-image:url("../../Comm_Images/home-bg-body.gif"); background-repeat:repeat-x;}
.divHome { width:800px; margin:0 auto; height:100px;}
#logoH { float:left; width:380px; height:40px; border:1px solid #cccccc; margin-top:20px; text-align:center; font-size:30px; line-height:40px; color:#333333; font-style:oblique; border-radius:15px; background-color:#e3e5dc;}
.homeBgSearch { width:306px; height:35px; float:right; margin-top:33px;}
.homeL { width:100%; height:60px; background-color:#e3e5dc;}
.homeSearchBox { font-size:16px; line-height:18px; color:#404040; background-color:#ffffff; border-width:1px; border-style:solid; border-top-color:#e9eed8; border-right-color:#c6c3b3; border-bottom-color:#abaf94; border-left-color:#c6c3b3; height:20px; margin-top:7px; width:160px; float:left;}
.paddingSearchicon { width:20px; height:20px; margin-top:6px; margin-left:10px; float:left; border:1px solid #eeeeee;}
.homeLink { font-family:Arial,Helvetica,sans-serif; font-size:15px; font-weight:bold; color:lightblue; width:80px; float:left; display:inline-block; height:20px; line-height:15px; margin-top:10px; margin-left:15px;}

.divContent { width:800px; margin:0 auto; height:400px;
}
.divContent .leftH { float:left; }
#seahorse { width:112px; float:left;}
#mainContent { position:relative; width:450px; top:-26px; float:left;}
.welcome { font-family:Arial,Helvetica,sans-serif; font-size:15px; font-weight:bold; color:#ffffff; padding-left:20px; background-color:#abaf94; line-height:26px;}
.bgControl { background-color:#e3e5dc;}
.intro { font-family:Arial,Helvetica,sans-serif; font-size:15px; font-weight:bold; color:#555555; padding-top:20px; line-height:18px; padding-left:20px; display:inline-block; width:300px;}


.navigationLabel { color:#9a839; font-size:15px; font-weight:bold; line-height:22px; font-family:Arial,Helvetica,sans-serif; padding-left:20px;}
.ctMenu { padding-left:40px; height:270px;}
.navigationLinks { font-family: 宋体,新宋体; font-size:16px; color:#333333; line-height:22px; font-weight:bold; vertical-align:middle; width:300px; height:22px; border-bottom:1px dotted #555555; margin-top:10px; margin-bottom: -10px;}


.footerHome { font-family:Arial,Helvetica,sans-serif; font-size:14px; text-transform:uppercase; color:#ffffff; background-color:#122e87; padding-left:16px; line-height:22px;}
.fishPosition {
}
.fishPosition img { position:relative; left: 497px; top: -331px; width:241px; height:250px; float:left;}


/************母版页部分**************/
.divMaster { width:800px; heigt: 100px; margin:0 auto;}
.divLogoM { float:left; width:380px; height:70px; border:1px solid #cccccc; margin-top:15px; margin-bottom:5px; text-align:center; font-size:30px; font-weight:bold; line-height:70px; color:#333333; font-style:oblique; border-radius:15px; background-color:#e3e5dc;}

.signIn { background-color:#e9eed8; width:400px; height:40px; margin-top:15px; float:right;}
.textboxSearch { font-size:16px; line-height:24px; color:#000000; background-color:#ffffff; border-width:1px; border-style:solid; border-top-color:#e9eed8; border-right-color:#c6c3b3; border-bottom-color:#abaf94; border-left-color:#c6c3b3; height:24px; margin-left:15px; float:left; margin-top:8px; margin-bottom:8px; width:180px;}
#btnSearch { float:left; width:20px; height:20px; margin-top:10px; margin-bottom:10px; margin-left:10px;}
.link { font-family: 宋体; font-size:15px; color:#333333; margin-top:8px; margin-bottom:8px; margin-left:15px; line-height:24px; width:60px; float:left;}
#btnLgnStatus { float:left; line-height:24px; margin-top:8px; margin-bottom:8px; margin-left:15px; width:80px; font-family: 宋体,Arial; font-weight:bold;}
.disableLink { font-family:Arial,Helvetica,sans-serif; font-size:0.65em; text-transform:uppercase; color:#999999; text-indent:10px;}
.checkOut { background-color:#abaf94; width:400px; height:30px; float:right;}
.checkOut img { width:20px; height:20px; margin-left:15px; margin-top:5px; margin-bottom:5px; margin-right:2px; border:none; float:left; }
.checkOutLink { font-family: 宋体,Arial; font-size:15px; color:#333333; margin-right:20px; line-height:20px; margin-top:6px; margin-bottom:4px; float:left;}

.divTitle { width:800px; height:52px; margin:0 auto; clear:both; border-bottom:2px solid #eeeeee;}
.breadrumb { font-family: 宋体,Arial; font-size:14px; color:#333333; font-weight:bold; height:25px; line-height:25px; text-align:right; margin-right:30px;
}

.pageHeader { font-family: 宋体,Arial; font-size:14px; font-weight:bold; color:#ffffff; background-color:#0a1b50; text-indent:16px; height:20px; line-height:20px; width:620px; margin-left:180px;}
.divCenter { width:800px; margin:0 auto; min-height:400px;}
.leftMenu { float:left; width:180px; height:auto;}
.menuLinks { font-family: 宋体,Arial; font-size:15px; color:#333333; font-weight:bold; width:150px; height:35px; padding-left:20px; border-bottom:1px dotted #999999;}

.mainContent { float:right; background-color:white; width:620px;}
.footer { font-family:Arial,Helvetica,sans-serif; font-size:13px; text-transform:uppercase; color:#ffffff; background-color:#abaf94; padding-left:18px; line-height:18px;}


.dottedLine { background-image:url("../../Comm_Images/dotten-line.gif"); background-repeat:repeat-x; background-position:bottom; height:8px;}
.mainNavigation { font-family:Arial,Helvetica,sans-serif; font-size:0.7em; text-transform:uppercase; padding-left:2px; color:#333333; font-weight:bold; line-height:20px; padding-right:5px; display:block; height:100%;}



/****SignIn.aspx************/.signinPosition { width:400px; height:200px; margin:0 auto; }

.signinHeader { font-family:Arial,Helvetica,sans-serif; font-size:16px; font-weight:bold; text-align:left; white-space:nowrap; color:#333333; padding-top:5px; padding-bottom:5px; line-height:30px;}
.signinLabel { font-family:Arial,Helvetica,sans-serif; font-weight:normal; color:#333333; font-size:15px; margin-top:5px;}
.signinTextbox { font-size:15px; color:#000000; text-indent:3px; background-color:#eae9e4; border-width:1px; border-style:solid; border-top-color:#c6c3b3; border-right-color:#7c7d6a; border-bottom-color:#000000; border-left-color:#7c7d6a; height:20px; line-height:20px; margin-right:2px; margin-left:30px; margin-top:5px;}
.ErrorLabel { font-family:Arial,Helvetica,sans-serif; font-weight:bold; color:#cc3300; font-size:15px; margin-bottom:30px; margin-left:100px;}


.signinButton { font-family:Tahoma,Arial,Helvetica,sans-serif; background-color:#fb9d00; font-size:15px; color:#ffffff; font-weight:bold; cursor:pointer; border: 1px solid; border-bottom-color:#f07c00; border-top-color:#ffcc00; border-right-color:#f07c00; border-left-color:#ffcc00; padding-left:5px; padding-right:5px; margin-left:150px; margin-top:10px;}
.linkNewUser { font-family:Arial,Helvetica,sans-serif; font-size:14px; color:#33333; text-indent:3px;}
.signInContent { font-family:Arial,Helvetica,sans-serif; font-size:0.8em; background-color:#ffffff; white-space:nowrap; color:#333333; padding-top:10px; padding-bottom:10px;}
.welcomeName { font-size:0.7em; font-weight:bold; white-space:nowrap; text-indent:37px; color:#555555; font-family:Arial,Helvetica,sans-serif;}
/***********NewUser.aspx**************/.signinNewUser { font-family:Arial,Helvetica,sans-serif; font-size:0.8em; text-transform:uppercase; color:#333333;}
/************UserProfile.aspx**************/.profilePostition { position:relative; width:360px; top:0; left:0; margin:0 auto; vertical-align:top;}
.info { font-family:Arial,Helvetica,sans-serif; font-size:0.8em; color:#333333; margin-bottom:15px; text-align:left;}
/***************Products.aspx*******************/.divLeft { float:left; width:145px; height:145px; border:2px solid #555555; margin-left:10px; text-align:center; margin-top:10px; margin-bottom:10px;}
.divLeft img { width:138px; height:138px; border:2px solid #cccccc; padding:2px;}
.divRight { float:left; width:120px; height:145px; margin-left:8px; margin-top:10px; margin-bottom:10px;}
.productName { font-family:Arial,Helvetica,sans-serif; font-size:16px; font-weight:bold; color:#333333; margin-top:3px; padding-left:2px; padding-bottom:8px;}
.productDescription { font-family:Arial,Helvetica,sans-serif; font-size:12px; font-weight:normal; color:#333333; padding-left:2px; padding-bottom:8px;}
.itemText { font-family:Arial,Helvetical,sans-serif; font-size:13px; font-weight:normal; line-height:30px; width:100%; height:30px;}
.itemText #imgCart { width:20px; height:20px; border-width:0; float:left; margin-left:20px; margin-top:6px;}
.linkCart { font-family:Arial,Helvetical,sans-serif; font-size:14px; font-weight:bold; cursor:pointer; line-height:28px; margin-top:3px; margin-left:4px; float:left;}


.itemText #imgWishList { width:20px; height:20px; border-width:0; float:left; margin-left:20px; margin-top:6px;}
.linkWishlist { font-family:Arial,Helvetical,sans-serif; font-size:14px; font-weight:bold; cursor:pointer; line-height:28px; margin-top:3px; margin-left:4px; float:left;}


/*********ShoppingCart.aspx*************************/.cartPosition { position:relative; width:400px; top:0; left:0; margin:0 auto; vertical-align:top; padding-top:50px; padding-bottom:33px;}
.linkCheckOut { font-family:Arial,Helvetica,sans-serif; font-size:0.65em; text-transform:uppercase; color:#333333; text-indent:7px;}
.cartHeader { font-family:Arial,Helvetica,sans-serif; font-size:0.9em; text-align:center; white-space:nowrap; color:#333333; width:387px; padding-bottom:16px;}
.labelLists { font-family:Tahoma,Arial,Helvetica,sans-serif; font-size:0.7em; font-weight:bold; color:#747c6d; vertical-align:bottom; background-image:url("../../Comm_Images/bg-labelLists.gif"); text-align:left; line-height:21px; padding-left:5px; text-indent:2px; padding-right:5px; padding-top:8px; padding-bottom:1px; border-bottom-color:#ffffff; border-bottom-style:solid;}
.listItem { font-family:Tahoma,Arial,Helvetica,sans-serif; font-size:0.7em; color:#3333333; text-decoration:none; line-height:15px; padding-left:5px; padding-right:5px; padding-bottom:2px; padding-top:2px; white-space:nowrap; text-align:left; background-color:#e8eadd;
}

.dottedLineCentered { background-image:url("../../Comm_Images/dotten-line.gif"); background-repeat:repeat-x; background-position:center; height:8px; width:400px;}
.total { font-family:Arial,Helvetica,sans-serif; font-size:0.7em; font-weight:bold; color:#000000; padding-top:10px; padding-right:30px; line-height:1.5em; text-align:right;}

.otherCon { width:400px; text-align:right; margin-top:20px;}
/**************CheckOut.aspx************************/.checkoutContent { font-family:Arial,Helvetica,sans-serif; background-color:#ffffff; white-space:nowrap; color:#333333; width:270px; padding-left:150px; padding-top:20px; padding-bottom:33px;}
.checkoutHeaders { font-family:Arial,Helvetica,sans-serif; font-size:0.9em; font-weight:bold; color:#333333; text-transform:capitalize; white-space:nowrap; height:30px; padding-top:3px; padding-bottom:5px;}
.checkoutButtonBg { text-align:right; width:336px;}
.continue { font-family:Tahoma,Arial,Helvetica,sans-serif; font-size:0.7em; color:#000000; text-decoration:none; font-weight:bold; background-image:url("../../Comm_Images/button-continue.gif"); background-repeat:no-repeat; background-position:right 7px; padding-right:22px; padding-top:9px; margin-right:7px; cursor:pointer; line-height:40px;}
.submit { font-family:Tahoma,Arial,Helvetica,sans-serif; background-color:#fb9d00; font-size:0.7em; color:#ffffff; text-decoration:none; font-weight:bold; cursor:pointer; line-height:30px; border:1px solid; border-bottom-color:#f07c00; border-top-color:#ffcc00; border-right-color:#f07c00; border-left-color:#ffcc00; padding-right:10px; padding-left:10px; padding-top:1px; padding-bottom:1px;}
.checkOutLabel { font-family:Arial,Helvetica,sans-serif; font-size:0.7em; color:#333333; margin-left:3px; margin-bottom:10px; text-align:left;}
.back { font-family:Tahoma,Arial,Helvetica,sans-serif; font-size:0.7em; color:#000000; text-decoration:none; font-weight:bold; background-image:url("../../Comm_Images/button-back.gif"); background-repeat:no-repeat; background-position:left 7px; padding-left:22px; padding-top:9px; margin-left:7px; cursor:pointer; line-height:40px;}
.checkoutTextbox { font-size:1em; color:#000000; text-indent:3px; background-color:#eae9e4; border-width:1px; border-style:solid; border-top-color:#c6c3b3; border-right-color:#7c7d6a; border-bottom-color:#000000; border-left-color:#7c7d6a; height:16px; margin-top:1px;}
.checkoutDropdown { font-size:1em; color:#000000; text-indent:3px; background-color:#eae9e4; border-width:1px; border-style:solid; border-top-color:#c6c3b3; border-right-color:#7c7d6a; border-bottom-color:#000000; height:20px; margin-top:2px;}






checkout1.aspx
  •  
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="CheckOut1.aspx.cs" Inherits="dynamicweb11_1.CheckOut1" MasterPageFile="~/MasterPage1.Master" %><asp:Content runat="server" ContentPlaceHolderID="cphPage"><!--代码编写:虾米大王邮箱:modern358@163.com完成日期:2021年4月10日-->    <div class="checkoutContent">        <!--提交订单区域-->        <asp:Panel ID="panForm" runat="server">            <div class="cartHeader">                订购商品            </div>            <!---订购商品列表-->            <asp:SqlDataSource ID="sdsCart" runat="server" ConnectionString="<%$ ConnectionStrings:cnPetShop %>" SelectCommand="SELECT * FROM [cart] WHERE user_name=@uName" OnSelecting="sdsCart_Selecting">                <SelectParameters>                    <asp:Parameter Name="uName" Type="String"/>                </SelectParameters>            </asp:SqlDataSource>            <asp:GridView ID="gvCart" runat="server" AutoGenerateColumns="False" CellPadding="4" DataKeyNames="user_name,product_id" DataSourceID="sdsCart" EmptyDataText="购物车中没有商品" Width="400px" ForeColor="#333333" GridLines="None" OnRowDataBound="gvCart_RowDataBound">                <AlternatingRowStyle BackColor="White" />                <Columns>                    <asp:BoundField DataField="name" HeaderText="名称" SortExpression="name" >                    <ItemStyle Width="170px" />                    </asp:BoundField>                    <asp:BoundField DataField="quantity" HeaderText="数量" SortExpression="quantity">                    <ItemStyle HorizontalAlign="Center" Width="40px" />                    </asp:BoundField>                    <asp:BoundField DataField="list_price" DataFormatString="{0:C}" HeaderText="单价" SortExpression="list_price">                    <ItemStyle HorizontalAlign="Center" Width="40px" />                    </asp:BoundField>                </Columns>                <EditRowStyle BackColor="#2461BF" />                <FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />                <HeaderStyle CssClass="labelLists" BackColor="#507CD1" Font-Bold="True" ForeColor="White" />                <PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />                <RowStyle CssClass="listItem" Height="30px" Width="250px" BackColor="#EFF3FB" />                <SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />                <SortedAscendingCellStyle BackColor="#F5F7FB" />                <SortedAscendingHeaderStyle BackColor="#6D95E1" />                <SortedDescendingCellStyle BackColor="#E9EBEF" />                <SortedDescendingHeaderStyle BackColor="#4870BE" />            </asp:GridView>            <!--订购商品金额总计-->            <div class="total">                <asp:Literal ID="ltlTotal" runat="server"></asp:Literal>            </div>            <!--个人资料信息-->            <asp:SqlDataSource ID="sdsAccount" runat="server" ConnectionString="<%$ ConnectionStrings:cnPetShop %>" SelectCommand="SELECT * FROM [account] WHERE user_name=@uName" OnSelecting="sdsAccount_Selecting" UpdateCommand="UPDATE [account] SET [cname] = @cname, [country] = @country, [province] = @province, [city] = @city, [address] = @address, [zip_code] = @zip_code, [phone] = @phone, [email] = @email WHERE [user_name] = @user_name">                <SelectParameters>                    <asp:Parameter  Name="uName" Type="String"/>                </SelectParameters>                <UpdateParameters>                    <asp:Parameter Name="cname" Type="String" />                    <asp:Parameter Name="country" Type="String" />                    <asp:Parameter Name="province" Type="String" />                    <asp:Parameter Name="city" Type="String" />                    <asp:Parameter Name="address" Type="String" />                    <asp:Parameter Name="zip_code" Type="String" />                    <asp:Parameter Name="phone" Type="String" />                    <asp:Parameter Name="email" Type="String" />                    <asp:Parameter Name="user_name" Type="String" />                </UpdateParameters>            </asp:SqlDataSource>            <asp:FormView ID="fvAccount" runat="server" DataSourceID="sdsAccount" DefaultMode="Edit" DataKeyNames="user_name" OnItemUpdated="fvAccount_ItemUpdated">                <EditItemTemplate>                <table style="border-bottom:1px dotted #555555;border-spacing:0;padding:0;border-collapse:collapse;">                    <tr>                        <td class="label" width="50%" style="height:50px;">                            姓名:<br />                            <asp:TextBox ID="txtCname" runat="server" Text='<%# Bind("cname") %>' CssClass="checkoutTextbox" MaxLength="80" Width="155px"></asp:TextBox><br />                            <asp:RequiredFieldValidator ID="valFirstName" runat="server" ControlToValidate="txtCname" ErrorMessage="输入姓名" Display="Dynamic" Font-Size="Small" ForeColor="Red"></asp:RequiredFieldValidator>                        </td>                        <td class="label" width="40%">&nbsp;</td>                    </tr>                    <tr>                        <td class="label" style="height:50px;">                            国家:<br />                            <asp:TextBox ID="txtCountry" runat="server" Text='<%# Bind("country") %>' CssClass="checkoutTextbox" MaxLength="80" Width="155px"></asp:TextBox><br />                            <asp:RequiredFieldValidator ID="valCountry" runat="server" ControlToValidate="txtCountry" ErrorMessage="输入国家" Display="Dynamic" Font-Size="Small" ForeColor="Red"></asp:RequiredFieldValidator>                        </td>                        <td class="label">                            省:<br />                            <asp:TextBox ID="txtProvince" runat="server" Text='<%# Bind("province") %>' CssClass="checkoutTextbox" MaxLength="80" Width="155px"></asp:TextBox><br />                            <asp:RequiredFieldValidator ID="valProvince" runat="server" ControlToValidate="txtProvince" ErrorMessage="输入省份" Display="Dynamic" Font-Size="Small" ForeColor="Red"></asp:RequiredFieldValidator>                        </td>                    </tr>                    <tr>                        <td class="label" style="height:50px;">                            城市:<br />                            <asp:TextBox ID="txtCity" runat="server" Text='<%# Bind("city") %>' CssClass="checkoutTextbox" MaxLength="80" Width="155px"></asp:TextBox><br />                            <asp:RequiredFieldValidator ID="valCity" runat="server" ControlToValidate="txtCity" ErrorMessage="输入城市" Display="Dynamic" Font-Size="Small" ForeColor="Red"></asp:RequiredFieldValidator>                        </td>                        <td class="label" style="height:50px;">                            邮编:<br />                            <asp:TextBox ID="txtZipcode" runat="server" Text='<%# Bind("zip_code") %>' CssClass="checkoutTextbox" MaxLength="80" Width="80px"></asp:TextBox><br />                            <asp:RequiredFieldValidator ID="valZipcode" runat="server" ControlToValidate="txtZipcode" ErrorMessage="输入邮编" Display="Dynamic" Font-Size="Small" ForeColor="Red"></asp:RequiredFieldValidator>                        </td>                    </tr>                    <tr>                        <td class="label" colspan="2" style="height:50px;">                            地址:<br />                            <asp:TextBox ID="txtAddress" runat="server" Text='<%# Bind("address") %>' CssClass="checkoutTextbox" MaxLength="80" Width="330px"></asp:TextBox><br />                            <asp:RequiredFieldValidator ID="valAddress" runat="server" ControlToValidate="txtAddress" ErrorMessage="输入地址" Display="Dynamic" Font-Size="Small" ForeColor="Red"></asp:RequiredFieldValidator>                        </td>                    </tr>                    <tr>                        <td class="label" colspan="2" style="height:50px;">                            电话:<br />                            <asp:TextBox ID="txtPhone" runat="server" Text='<%# Bind("phone") %>' CssClass="checkoutTextbox" MaxLength="80" Width="155px"></asp:TextBox><br />                            <asp:RequiredFieldValidator ID="valPhone" runat="server" ControlToValidate="txtPhone" ErrorMessage="输入电话" Display="Dynamic" Font-Size="Small" ForeColor="Red"></asp:RequiredFieldValidator>                        </td>                    </tr>                    <tr>                        <td class="label" colspan="2" style="height:70px;" valign="top">                            电子邮箱:<br />                            <asp:TextBox ID="txtEmail" runat="server" Text='<%# Bind("email") %>' CssClass="checkoutTextbox" MaxLength="80" Width="330px"></asp:TextBox><br />                            <asp:RequiredFieldValidator ID="valEmail" runat="server" ControlToValidate="txtEmail" ErrorMessage="输入电子邮件" Display="Dynamic" Font-Size="Small" ForeColor="Red"></asp:RequiredFieldValidator>                            <asp:RegularExpressionValidator ID="valEmail1" ControlToValidate="txtEmail" runat="server" ErrorMessage="无效的Email地址" Display="Dynamic" Font-Size="Small" ForeColor="Red" ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"></asp:RegularExpressionValidator>                        </td>                    </tr>                </table>                <div class="checkoutButtonBg">                    <!--提交更新的命令按钮-->                    <asp:LinkButton ID="btnSubmit" runat="server" CausesValidation="true" CommandName="Update" CssClass="submit" Text="更新资料"></asp:LinkButton>                                    </div>            </EditItemTemplate>            </asp:FormView>            <asp:Label ID="lblMessage" runat="server" Text=""></asp:Label>            <!--提交订单按钮-->            <div class="checkoutButtonBg">                <asp:LinkButton ID="FinishButton" runat="server" CssClass="submit" Text="提交订单" OnClick="FinishButton_Click"></asp:LinkButton>            </div>        </asp:Panel>        <!--完成信息区域-->        <asp:Panel ID="panFinish" runat="server" Visible="false">            <div class="checkOutLabel">                感谢你的订购!<br /><br />                <p>订单商品将开始通过快递配送,请保持联系方式畅通。</p>                <p>如对订单有任何疑问,请随时联系我们的客户服务400123456</p>                <p>.NET宠物商店</p>            </div>        </asp:Panel>    </div></asp:Content>
checkout.aspx.cs
  •  
using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;
/*****************************
代码编写:虾米大王邮箱:modern358@163.com完成日期:2021年4月10日 ******************************/
namespace dynamicweb11_1{ public partial class CheckOut1 : System.Web.UI.Page { private decimal total;
protected void Page_Load(object sender, EventArgs e){ if (Session["UserName"] == null) { Response.Redirect("~/SignIn.aspx?from=CheckOut1.aspx"); } }
protected void sdsCart_Selecting(object sender, SqlDataSourceSelectingEventArgs e){ e.Command.Parameters[0].Value = Session["UserName"].ToString(); }
protected void gvCart_RowDataBound(object sender, GridViewRowEventArgs e){ if (e.Row.RowType == DataControlRowType.DataRow) { System.Data.DataRowView row1 = e.Row.DataItem as System.Data.DataRowView; total += Convert.ToInt32(row1.Row["quantity"]) * Convert.ToDecimal(row1.Row["list_price"]); } else if (e.Row.RowType == DataControlRowType.Footer) { ltlTotal.Text = "总价:" + total.ToString("C"); } else { ltlTotal.Text = ""; } }
protected void sdsAccount_Selecting(object sender, SqlDataSourceSelectingEventArgs e){ e.Command.Parameters[0].Value = Session["UserName"].ToString(); }
protected void fvAccount_ItemUpdated(object sender, FormViewUpdatedEventArgs e){ lblMessage.Text = "你的资料已更新<br>"; }
protected void FinishButton_Click(object sender, EventArgs e){ string cnString = System.Configuration.ConfigurationManager.ConnectionStrings["cnPetShop"].ToString(); System.Data.SqlClient.SqlConnection con = new System.Data.SqlClient.SqlConnection(cnString); con.Open();
string sqlOrder = "insert into orders values(@user_name,@order_date)"; sqlOrder += " ; SELECT @@identity AS 'id'"; System.Data.SqlClient.SqlCommand cmdOrder = new System.Data.SqlClient.SqlCommand(sqlOrder, con); cmdOrder.Parameters.AddWithValue("@user_name", Session["UserName"]); cmdOrder.Parameters.AddWithValue("@order_date",DateTime.Now.ToShortDateString()); string order_id = cmdOrder.ExecuteScalar().ToString(); string sqlCart = "select * from cart where user_name=@uName"; System.Data.SqlClient.SqlDataAdapter adapter = new System.Data.SqlClient.SqlDataAdapter(sqlCart, con); adapter.SelectCommand.Parameters.AddWithValue("@uName",Session["UserName"]); System.Data.DataSet dsCart = new System.Data.DataSet(); adapter.Fill(dsCart);
for (int i = 0; i < dsCart.Tables[0].Rows.Count; i++) { string sqlOrderDetails = "insert into orderlineitem values(@order_id,@product_id,@quantity,@list_price)"; System.Data.SqlClient.SqlCommand cmdDetails = new System.Data.SqlClient.SqlCommand(sqlOrderDetails, con); cmdDetails.Parameters.AddWithValue("@order_id", order_id); cmdDetails.Parameters.AddWithValue("@product_id",dsCart.Tables[0].Rows[i]["product_id"]); cmdDetails.Parameters.AddWithValue("@quantity",dsCart.Tables[0].Rows[i]["quantity"]); cmdDetails.Parameters.AddWithValue("@list_price",dsCart.Tables[0].Rows[i]["list_price"]); cmdDetails.ExecuteNonQuery();
}
string sqlDelete = "delete from cart where user_name=@user_name"; System.Data.SqlClient.SqlCommand cmdDelete = new System.Data.SqlClient.SqlCommand(sqlDelete, con); cmdDelete.Parameters.AddWithValue("@user_name",Session["UserName"]); cmdDelete.ExecuteNonQuery();
con.Close(); panForm.Visible = false; panFinish.Visible = true;
} }}
defalut1.aspx
  •  
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default1.aspx.cs" Inherits="dynamicweb11_1.Default1" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head runat="server"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title>欢迎来到.NET宠物商店</title><!--代码编写:虾米大王邮箱:modern358@163.com完成日期:2021年4月10日--></head><body class="homeBody"> <form id="form1" runat="server"> <!--主页头内容--> <div class="divHome"> <div id="logoH">.NET PET SHOP</div> <!--搜索--> <div class="homeBgSearch"> <asp:TextBox ID="txtSearch" runat="server" CssClass="homeSearchBox"></asp:TextBox> <asp:ImageButton ID="btnSearch" runat="server" CssClass="paddingSearchicon" ImageUrl="Comm_Images/button-search.gif" OnClick="btnSearch_Click" /> <!--登录退出---> <asp:LinkButton ID="btnLgnStatus" runat="server" CssClass="homeLink" Text="登录" OnClick="btnLgnStatus_Click"></asp:LinkButton> </div> </div> <div class="homeL"></div> <!--主页主体内容--> <div class="divContent"> <div id="leftH"> <div id="seahorse"> <img height="280" src="Comm_Images/seahorse.png" width="112" alt="sea Horse" /> </div> <div id="mainContent"> <div class="welcome">欢迎来到动物世界</div> <div class="bgControl"> <div class="intro">从我们精选的宠物中挑选你的最爱吧</div> <div class="navigationLabel">宠物分类:</div> <div class="ctMenu"> <!--宠物分类菜单--> <asp:DataList ID="dlCategories" runat="server" DataKeyField="category_id" DataSourceID="sdsCategory"> <ItemTemplate> <div class="navigationLinks"> <!--.NET的数据绑定分为单向绑定和双向绑定。Eval("字段名")为单向只读绑定,只获取字段数据。Bind("字段名")为双向绑定,可把控件上的数据更新到数据源中,用于编辑。--> <asp:HyperLink ID="lnkCategory" runat="server" NavigateUrl='<%# string.Format("~/Products1.aspx?categoryId={0}&name={1}",Eval("category_id"),Eval("name")) %>' Text='<%# Eval("name") %>'></asp:HyperLink> </div> <br /> <br /> </ItemTemplate> </asp:DataList> <asp:SqlDataSource ID="sdsCategory" runat="server" ConnectionString="<%$ ConnectionStrings:cnPetShop %>" SelectCommand="SELECT [category_id], [name] FROM [category]"></asp:SqlDataSource> </div> <div class="footerHome">Powered by .NET 4.6</div> </div> </div> </div> <div class="fishPosition"> <img src="Comm_Images/home-fish.png" border="0"/> </div> </div> </form></body></html>
default1.aspx.cs
  •  
using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;/*****************************
代码编写:虾米大王邮箱:modern358@163.com完成日期:2021年4月10日 ******************************/namespace dynamicweb11_1{ public partial class Default1 : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e){
}
protected void btnSearch_Click(object sender, ImageClickEventArgs e){ if (!String.IsNullOrEmpty(txtSearch.Text)) { Response.Redirect("~/Search.aspx?keywords=" + txtSearch.Text); } }
protected void btnLgnStatus_Click(object sender, EventArgs e){ Response.Redirect("SignIn1.aspx"); } }}
mastertpage.master
  •  
<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="MasterPage1.master.cs" Inherits="dynamicweb11_1.MasterPage1" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head runat="server"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title>.NET宠物商店</title><!--代码编写:虾米大王邮箱:modern358@163.com完成日期:2021年4月10日--></head><body> <form id="form1" runat="server"> <!--母版页头部内容--> <div class="divMaster"> <div class="divLogoM"> <a href="Default1.aspx">.NET PET SHOP</a> </div> <div class="signIn"> <asp:TextBox ID="txtSearch" runat="server" CssClass="textboxSearch"></asp:TextBox> <asp:ImageButton ID="btnSearch" runat="server" AlternateText="Search" CausesValidation="false" ImageUrl="Comm_Images/button-search.gif" OnClick="btnSearch_Click"/> <!--我的资料--> <asp:HyperLink ID="hlProfile" runat="server" NavigateUrl="UserProfile1.aspx" CssClass="link">我的资料</asp:HyperLink> <!--登录/退出--> <asp:LinkButton ID="btnLgnStatus" runat="server" Text="登录" OnClick="btnLgnStatus_Click" CausesValidation="False"></asp:LinkButton> <div class="checkOut"> <a href="ShoppingCart1.aspx"><img border="0" src="Comm_Images/button-cart.jpg"/></a> <a href="ShoppingCart1.aspx" class="checkOutLink">购物车</a> </div> </div> </div>
<!--母版页主体内容--> <div class="divTitle"> <div class="breadrumb"> <!--显示用户名欢迎信息--> <asp:Literal ID="ltlName" runat="server" Text="欢迎,访客"></asp:Literal> </div> <div class="pageHeader"> <!--网页内标题--> <asp:Literal ID="ltlHeader" runat="server"></asp:Literal> </div> </div> <div class="divCenter"> <div class="leftMenu">&nbsp; <!--宠物分类菜单--> <asp:DataList ID="dlCategory" runat="server" DataKeyField="category_id" DataSourceID="sdsCategory"> <ItemTemplate> <div class="menuLinks"> <asp:HyperLink ID="lnkCategory" runat="server" NavigateUrl='<%# string.Format("~/Products1.aspx?categoryId={0}&name={1}",Eval("category_id"),Eval("name")) %>' Text='<%# Eval("name") %>'></asp:HyperLink> </div> <br /> </ItemTemplate> </asp:DataList> <asp:SqlDataSource ID="sdsCategory" runat="server" ConnectionString="<%$ ConnectionStrings:cnPetShop %>" SelectCommand="SELECT [category_id], [name] FROM [category]"></asp:SqlDataSource> </div> <div class="mainContent"> <!--占位符--> <asp:ContentPlaceHolder ID="cphPage" runat="server">
</asp:ContentPlaceHolder> <div class="footer">powered by .net 4.6</div> </div> </div> </form></body></html>
masterpage.master.cs
  •  
using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;/*****************************
代码编写:虾米大王邮箱:modern358@163.com完成日期:2021年4月10日 ******************************/namespace dynamicweb11_1{ public partial class MasterPage1 : System.Web.UI.MasterPage { protected void Page_Load(object sender, EventArgs e){ ltlHeader.Text = Page.Header.Title; Page.UnobtrusiveValidationMode = UnobtrusiveValidationMode.None; if (Session["UserName"] != null) { ltlName.Text = "欢迎," + Session["UserName"].ToString(); btnLgnStatus.Text = "退出"; } else { btnLgnStatus.Text = "登录"; } }
protected void btnSearch_Click(object sender, ImageClickEventArgs e){ if (!String.IsNullOrEmpty(txtSearch.Text)) { Response.Redirect("~/Search.aspx?keywords=" + txtSearch.Text); } }
protected void btnLgnStatus_Click(object sender, EventArgs e){ if (Session["UserName"] == null) { Response.Redirect("~/SignIn1.aspx"); } else { Session["UserName"] = null; Response.Redirect("~/SignIn1.aspx"); } } }}
newuser1.aspx
  •  
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="NewUser1.aspx.cs" Inherits="dynamicweb11_1.NewUser1" MasterPageFile="~/MasterPage1.Master" %><asp:Content runat="server" ContentPlaceHolderID="cphPage"><!--代码编写:虾米大王邮箱:modern358@163.com完成日期:2021年4月10日-->    <div class="signinPosition">        <asp:Panel ID="plRegister" runat="server">            <div class="signinHeader">               注册新用户            </div>            <table>                <tr>                    <td class="signinLabel">用户名:</td>                    <td>                        <asp:TextBox ID="txtName" runat="server" CssClass="signinTextbox" Width="155px"></asp:TextBox>                        <asp:RequiredFieldValidator ID="UserNameRequired" runat="server" ControlToValidate="txtName" ErrorMessage="请填写用户名" Display="Dynamic" Font-Size="Small" ForeColor="Red"></asp:RequiredFieldValidator>                        <asp:Label ID="lblError" runat="server" Text=""></asp:Label>                    </td>                </tr>                <tr>                    <td class="signinLabel">密码:</td>                    <td>                        <asp:TextBox ID="txtPassword" runat="server" CssClass="signinTextbox" TextMode="Password" Width="155px"></asp:TextBox>                        <asp:RequiredFieldValidator ID="PasswordRequired" runat="server" ControlToValidate="txtPassword" ErrorMessage="请填写密码" Display="Dynamic" Font-Size="Small" ForeColor="Red"></asp:RequiredFieldValidator>                    </td>                </tr>                 <tr>                    <td class="signinLabel">确认密码:</td>                    <td>                        <asp:TextBox ID="txtConfirmPwd" runat="server" CssClass="signinTextbox" TextMode="Password" Width="155px"></asp:TextBox>                        <asp:RequiredFieldValidator ID="ConfirmPwdRequired" runat="server" ControlToValidate="txtConfirmPwd" ErrorMessage="请填写确认密码" Display="Dynamic" Font-Size="Small" ForeColor="Red"></asp:RequiredFieldValidator>                        <asp:CompareValidator ID="PwdCompare" runat="server" ControlToCompare="txtPassword" ControlToValidate="txtConfirmPwd" ErrorMessage="两次密码填写不一致" Display="Dynamic" Font-Size="Small" ForeColor="Red"></asp:CompareValidator>                    </td>                </tr>            </table>            <asp:Button ID="btnSubmit" runat="server" CssClass="signinButton" Text="注册" OnClick="btnSubmit_Click" />        </asp:Panel>        <asp:Panel ID="plSuccess" runat="server" Visible="false">            <p class="signinLabel"><br /><strong>感谢你的注册。</strong></p>            <p class="signinLabel">用户创建成功,现在你可以:</p>            <p class="signinLabel"><a class="signinNewUser" href="Products1.aspx?categoryId=BACKYARD">继续选购</a></p>            <p class="signinLabel"><a class="signinNewUser" href="ShoppingCart1.aspx">购物车</a></p>            <p class="signinLabel"><a class="signinNewUser" href="UserProfile1.aspx">变更你的资料</a></p>        </asp:Panel>    </div></asp:Content>
newuser1.aspx.cs
  •  
using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;/*****************************
代码编写:虾米大王邮箱:modern358@163.com完成日期:2021年4月10日 ******************************/namespace dynamicweb11_1{ public partial class NewUser1 : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e){
}
protected void btnSubmit_Click(object sender, EventArgs e){ string conString = System.Configuration.ConfigurationManager.ConnectionStrings["cnPetShop"].ToString(); System.Data.SqlClient.SqlConnection con = new System.Data.SqlClient.SqlConnection(conString); con.Open();
string sqlSelect = "select * from account where user_name=@uName"; System.Data.SqlClient.SqlCommand cmdSelect = new System.Data.SqlClient.SqlCommand(sqlSelect, con); cmdSelect.Parameters.AddWithValue("@uName",txtName.Text); System.Data.SqlClient.SqlDataReader reader = cmdSelect.ExecuteReader();
if (reader.HasRows) { lblError.Text = "此用户已存在"; reader.Close(); } else { reader.Close(); string sqlInsert = "insert into account(user_name,user_pwd) values(@uName,@uPwd)"; System.Data.SqlClient.SqlCommand cmdInsert = new System.Data.SqlClient.SqlCommand(sqlInsert, con); cmdInsert.Parameters.AddWithValue("@uName",txtName.Text); cmdInsert.Parameters.AddWithValue("@uPwd",txtPassword.Text); cmdInsert.ExecuteNonQuery(); plRegister.Visible = false; plSuccess.Visible = true; }
con.Close(); } }}
products1.aspx
  •  
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Products1.aspx.cs" Inherits="dynamicweb11_1.Products1" MasterPageFile="~/MasterPage1.Master" %><asp:Content runat="server" ContentPlaceHolderID="cphPage"><!--代码编写:虾米大王邮箱:modern358@163.com完成日期:2021年4月10日-->    <div>        <asp:DataList ID="dlProduct" runat="server" CellPadding="16" DataKeyField="product_id" DataSourceID="sdsProduct" HorizontalAlign="Center" RepeatColumns="2" Width="620px">            <ItemTemplate>                <div class="divLeft">                    <img id="imgProduct" alt='<%# Eval("name") %>' src='<%# Eval("pro_image") %>' runat="server"/>                </div>                <div class="divRight">                    <div class="productName">                        <%# Eval("name") %>                    </div>                    <div class="productDescription">                        <%# Eval("descn ") %>                    </div>                    <div class="itemText">                        价格:<%# Eval("list_price ","{0:c}") %>                    </div>                    <div class="itemText">                        <img id="imgCart" src="Comm_Images/button-cart.jpg" />                        <asp:HyperLink ID="lnkCart" runat="server" NavigateUrl='<%# string.Format("~/ShoppingCart1.aspx?productId={0}&name={1}&price={2}&categoryId={3}",Eval("product_id "),Eval("name"),Eval("list_price "),Eval("category_id ")) %>' CssClass="linkCart" Text="添加购物车"></asp:HyperLink>                    </div>                </div>            </ItemTemplate>        </asp:DataList>        <asp:SqlDataSource ID="sdsProduct" runat="server" ConnectionString="<%$ ConnectionStrings:cnPetShop %>" SelectCommand="SELECT * FROM [product] WHERE ([category_id] = @category_id)">            <SelectParameters>                <asp:QueryStringParameter Name="category_id" QueryStringField="categoryId" Type="String" />            </SelectParameters>        </asp:SqlDataSource>    </div></asp:Content>
products1.aspx.cs
  •  
using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;/*****************************
代码编写:虾米大王邮箱:modern358@163.com完成日期:2021年4月10日 ******************************/namespace dynamicweb11_1{ public partial class Products1 : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e){ if (Request.QueryString["name"] != null) { //Page.Master.Page.Title = Request.QueryString["name"].ToString(); //正确的写法 Page.Title = Request.QueryString["name"].ToString(); }
} }}
search.aspx
  •  
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Search.aspx.cs" Inherits="dynamicweb11_1.Search" MasterPageFile="~/MasterPage1.Master" %><asp:Content runat="server" ContentPlaceHolderID="cphPage">    <p>很抱歉,这个功能暂未开发,你可以试着自己完善。</p></asp:Content>
shoppingcart1.aspx
  •  
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ShoppingCart1.aspx.cs" Inherits="dynamicweb11_1.ShoppingCart1" MasterPageFile="~/MasterPage1.Master" %><asp:Content runat="server" ContentPlaceHolderID="cphPage"><!--代码编写:虾米大王邮箱:modern358@163.com完成日期:2021年4月10日-->    <div class="cartPosition">        <div class="cartHeader">            购物车中的商品        </div>        <!--购物车内容-->        <asp:SqlDataSource ID="sdsCart" runat="server" ConnectionString="<%$ ConnectionStrings:cnPetShop %>" OnSelecting="sdsCart_Selecting" SelectCommand="SELECT * FROM [cart] WHERE user_name=@uName" DeleteCommand="DELETE FROM [cart] WHERE [user_name] = @user_name AND [product_id] = @product_id" InsertCommand="INSERT INTO [cart] ([user_name], [product_id], [name], [list_price], [category_id], [quantity]) VALUES (@user_name, @product_id, @name, @list_price, @category_id, @quantity)" UpdateCommand="UPDATE [cart] SET [quantity] = @quantity WHERE [user_name] = @user_name AND [product_id] = @product_id">            <SelectParameters>                <asp:Parameter  Name="uName" Type="String"/>            </SelectParameters>            <DeleteParameters>                <asp:Parameter Name="user_name" Type="String" />                <asp:Parameter Name="product_id" Type="String" />            </DeleteParameters>            <InsertParameters>                <asp:Parameter Name="user_name" Type="String" />                <asp:Parameter Name="product_id" Type="String" />                <asp:Parameter Name="name" Type="String" />                <asp:Parameter Name="list_price" Type="Decimal" />                <asp:Parameter Name="category_id" Type="String" />                <asp:Parameter Name="quantity" Type="Int32" />            </InsertParameters>            <UpdateParameters>                <asp:Parameter Name="quantity" Type="Int32" />                <asp:Parameter Name="user_name" Type="String" />                <asp:Parameter Name="product_id" Type="String" />            </UpdateParameters>        </asp:SqlDataSource>        <asp:GridView ID="gvCart" runat="server" HorizontalAlign="Center" Width="400px" EmptyDataText="购物车中没有商品" AutoGenerateColumns="False" DataKeyNames="user_name,product_id" DataSourceID="sdsCart" CellPadding="4" ForeColor="#333333" GridLines="None" OnRowDataBound="gvCart_RowDataBound">            <AlternatingRowStyle BackColor="White" />            <Columns>                <asp:ButtonField ButtonType="Button" CommandName="Delete" Text="删除">                <ItemStyle Width="40px" />                </asp:ButtonField>                <asp:HyperLinkField DataNavigateUrlFields="category_id" DataTextField="name" DataNavigateUrlFormatString="~/Products1.aspx?categoryId={0}" HeaderText="名称" >                <ItemStyle Width="200px" />                </asp:HyperLinkField>                <asp:TemplateField HeaderText="数量">                    <ItemTemplate>                        <asp:TextBox ID="txtQuantity" runat="server" Width="20px" Text='<%# Bind("quantity") %>' AutoPostBack="True" OnTextChanged="txtQuantity_TextChanged"></asp:TextBox>                        <asp:RangeValidator ID="RangeValidator1" runat="server" ControlToValidate="txtQuantity" ErrorMessage="请输入1到100的数字" MaximumValue="100" MinimumValue="1" Type="Integer" Display="Dynamic"></asp:RangeValidator>                    </ItemTemplate>                    <ItemStyle Width="50px" />                </asp:TemplateField>                <asp:BoundField DataField="list_price" DataFormatString="{0:C}" HeaderText="单价" SortExpression="list_price">                <ItemStyle HorizontalAlign="Center" Width="50px" />                </asp:BoundField>                <asp:HyperLinkField DataNavigateUrlFields="product_Id" DataNavigateUrlFormatString="~/WishList1.aspx?productId={0}" Text="收藏">                <ControlStyle CssClass="linkWishlist" Width="50px" />                <ItemStyle Width="50px" />                </asp:HyperLinkField>            </Columns>            <EditRowStyle BackColor="#2461BF" />            <FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />            <HeaderStyle CssClass="labelLists" BackColor="#507CD1" Font-Bold="True" ForeColor="White" />            <PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />            <RowStyle CssClass="listItem" Height="30px" BackColor="#EFF3FB" />            <SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />            <SortedAscendingCellStyle BackColor="#F5F7FB" />            <SortedAscendingHeaderStyle BackColor="#6D95E1" />            <SortedDescendingCellStyle BackColor="#E9EBEF" />            <SortedDescendingHeaderStyle BackColor="#4870BE" />        </asp:GridView>        <!--总计-->        <div class="dottedLineCentered">            &nbsp;        </div>        <div class="total">            <asp:Literal ID="ltlTotal" runat="server"></asp:Literal>        </div>        <!--继续选购/结算-->        <div>            <asp:LinkButton ID="lbtnBack" runat="server" CssClass="linkCheckOut" OnClick="lbtnBack_Click">继续选购</asp:LinkButton><br />            <asp:LinkButton ID="lbtnCheckout" runat="server" CssClass="linkCheckOut" Text="结算" OnClick="lbtnCheckout_Click"></asp:LinkButton>        </div>    </div></asp:Content>
shoppingcart1.aspx.cs
  •  
using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;/*****************************
代码编写:虾米大王邮箱:modern358@163.com完成日期:2021年4月10日 ******************************/namespace dynamicweb11_1{ public partial class ShoppingCart1 : System.Web.UI.Page { // private decimal total;
protected void Page_Load(object sender, EventArgs e){ if (Session["UserName"] == null) { if (Request.QueryString["categoryId"] == null) return; string qsValue = "~/Products1.aspx?categoryId=" + Request.QueryString["categoryId"].ToString(); Response.Redirect("~/SignIn1.aspx?from=" + qsValue); }
if (!IsPostBack) { if(!string.IsNullOrEmpty(Request.QueryString["productId"])) { string cnString = System.Configuration.ConfigurationManager.ConnectionStrings["cnPetShop"].ToString(); System.Data.SqlClient.SqlConnection con = new System.Data.SqlClient.SqlConnection(cnString); con.Open();
string sqlUpdate = "update cart set quantity=quantity + 1 where user_name=@uName and product_id=@proId"; System.Data.SqlClient.SqlCommand cmdUpdate = new System.Data.SqlClient.SqlCommand(sqlUpdate,con); cmdUpdate.Parameters.AddWithValue("@uName",Session["UserName"]); cmdUpdate.Parameters.AddWithValue("@proId",Request.QueryString["productId"]); int numUpdate = cmdUpdate.ExecuteNonQuery();
if(numUpdate <= 0) { string sqlInsert = "insert into cart values(@uName,@proId,@name,@price,@categoryId,1)"; System.Data.SqlClient.SqlCommand cmdInsert = new System.Data.SqlClient.SqlCommand(sqlInsert,con); cmdInsert.Parameters.AddWithValue("@uName",Session["UserName"]); cmdInsert.Parameters.AddWithValue("@proId",Request.QueryString["productId"]); cmdInsert.Parameters.AddWithValue("@name",Request.QueryString["name"]); cmdInsert.Parameters.AddWithValue("@price",Request.QueryString["price"]); cmdInsert.Parameters.AddWithValue("@categoryId",Request.QueryString["categoryId"]); cmdInsert.ExecuteNonQuery(); } con.Close(); } } }
protected void sdsCart_Selecting(object sender, SqlDataSourceSelectingEventArgs e){ if (Session["UserName"] == null) { Response.Redirect("~/SignIn1.aspx"); } e.Command.Parameters[0].Value = Session["UserName"].ToString(); }
protected void gvCart_RowDataBound(object sender, GridViewRowEventArgs e){ if (e.Row.RowType == DataControlRowType.DataRow) { System.Data.DataRowView row1 = e.Row.DataItem as System.Data.DataRowView; total += Convert.ToInt32(row1.Row["quantity"]) * Convert.ToDecimal(row1.Row["list_price"]); } else if (e.Row.RowType == DataControlRowType.Footer) { ltlTotal.Text = "总价:" + total.ToString("C"); } else { ltlTotal.Text = ""; } }
protected void txtQuantity_TextChanged(object sender, EventArgs e){ for (int i = 0; i < gvCart.Rows.Count; i++) { gvCart.UpdateRow(i, false); } }
protected void lbtnBack_Click(object sender, EventArgs e){ if (Request.QueryString["categoryId"] != null) { Response.Redirect("~/products1.aspx?categoryId=" + Request.QueryString["categoryId"]); } else { Response.Redirect("~/products1.aspx?categoryId=BACKYARD"); } }
protected void lbtnCheckout_Click(object sender, EventArgs e){ if (gvCart.Rows.Count <= 0) { Response.Write("<script>window.alert('请选购商品后进行结算!')</script>"); return; } else { Response.Redirect("~/CheckOut1.aspx"); } } }}
sign1.aspx
  •  
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="SignIn1.aspx.cs" Inherits="dynamicweb11_1.SignIn1" MasterPageFile="~/MasterPage1.Master" %><asp:Content runat="server" ContentPlaceHolderID="cphPage"><!--代码编写:虾米大王邮箱:modern358@163.com完成日期:2021年4月10日-->    <div class="signinPosition">        <div class="signinHeader">用户登录</div>        <table>            <tr>                <td class="signinLabel">用户名:</td>                <td>                    <asp:TextBox ID="txtName" runat="server" CssClass="signinTextbox" Width="155px"></asp:TextBox>                    <asp:RequiredFieldValidator ID="UserNameRequired" runat="server" ControlToValidate="txtName" ErrorMessage="填写用户名" Display="Dynamic" Font-Size="Small" ForeColor="Red"></asp:RequiredFieldValidator>                </td>            </tr>            <tr>                <td class="signinLabel">密码:</td>                <td>                    <asp:TextBox ID="txtPassword" runat="server" CssClass="signinTextbox" TextMode="Password" Width="155px"></asp:TextBox>                    <asp:RequiredFieldValidator ID="PasswordRequired" runat="server" ControlToValidate="txtPassword" ErrorMessage="填写密码" Display="Dynamic" Font-Size="Small" ForeColor="Red"></asp:RequiredFieldValidator>                </td>            </tr>        </table>        <asp:CheckBox ID="chkRememberMe" runat="server" Text="记住我" Font-Size="Small" />        <asp:Button ID="btnSubmit" runat="server" CssClass="signinButton" Text="登录" OnClick="btnSubmit_Click" /><br />        <asp:Label ID="lblError" runat="server" CssClass="ErrorLabel" Text=""></asp:Label><br />        <asp:HyperLink ID="hlNewUser" runat="server" CssClass="linkNewUser" NavigateUrl="~/NewUser1.aspx">注册新用户</asp:HyperLink>    </div></asp:Content>
sign1.aspx.cs
  •  
using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;/*****************************
代码编写:虾米大王邮箱:modern358@163.com完成日期:2021年4月10日 ******************************/namespace dynamicweb11_1{ public partial class SignIn1 : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e){ if (!IsPostBack) { if (Request.Cookies["UserName"] != null) { txtName.Text = Request.Cookies["UserName"].Value; } } }
protected void btnSubmit_Click(object sender, EventArgs e){ string conString = System.Configuration.ConfigurationManager.ConnectionStrings["cnPetShop"].ToString(); System.Data.SqlClient.SqlConnection con = new System.Data.SqlClient.SqlConnection(conString); con.Open(); string sql = "select * from account where user_name=@uName and user_pwd=@uPwd"; System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand(sql,con); cmd.Parameters.AddWithValue("@uName",txtName.Text); cmd.Parameters.AddWithValue("@uPwd",txtPassword.Text); System.Data.SqlClient.SqlDataReader reader = cmd.ExecuteReader(); if(reader.HasRows) { if (chkRememberMe.Checked == true) { Response.Cookies["UserName"].Value = txtName.Text; //Response.Cookies["UserName"].Expires = DateTime.Now.AddDays("7"); Response.Cookies["UserName"].Expires = DateTime.Now.AddMinutes(2); } Session["UserName"] = txtName.Text; if(Request.QueryString["from"] == null) { Response.Redirect("~/Products1.aspx?categoryId=BACKYARD"); } else { Response.Redirect(Request.QueryString["from"]); } } else { lblError.Text = "用户名或密码错误"; }
reader.Close(); con.Close(); } }}
sql
  •  
CREATE DATABASE netPetShop;
use netPetShop;
--用户表CREATE TABLE account( user_name nvarchar(256) not null, user_pwd nvarchar(16) not null, cname nvarchar(80) null, country nvarchar(80) null, province nvarchar(80) null, city nvarchar(80) null, address nvarchar(80) null, zip_code nvarchar(80) null, phone nvarchar(80) null, email nvarchar(80) null, primary key(user_name));

--宠物分类表CREATE TABLE category( category_id nvarchar(50) not null, name nvarchar(80) not null, descn nvarchar(255) null, primary key(category_id));

--宠物表CREATE TABLE product( product_id nvarchar(50) not null, category_id nvarchar(50) not null, name nvarchar(80) not null, descn nvarchar(255) not null, pro_image nvarchar(80) not null, list_price decimal(18,2) not null, primary key(product_id));

--购物车CREATE TABLE cart( user_name nvarchar(256) not null, product_id nvarchar(50) not null, name nvarchar(80) not null, list_price decimal(18,2) not null, category_id nvarchar(50) not null, quantity int not null, primary key(user_name,product_id));
--订单表CREATE TABLE orders( order_id int not null identity(1,1), user_name nvarchar(256) not null, order_date datetime not null, primary key(order_id));


--订单明细表CREATE TABLE orderlineitem( item_id int not null identity(1,1), order_id int not null, product_id nvarchar(50) not null, quantity int not null, list_price decimal(18,2) not null, primary key(item_id));
insert into category values('BACKYARD','大型动物','大型动物');insert into category values('BIRDS','鸟类','鸟类');insert into category values('BUGS','昆虫','昆虫');insert into category values('FISH','鱼类','鱼类');
insert into product values('BD-01','BIRDS','塘鹅','动静皆宜','~/Prod_Images/Birds/icon-pelican.gif',86);insert into product values('BD-02','BIRDS','企鹅','形态可掬','~/Prod_Images/Birds/icon-penguin.gif',130);insert into product values('BD-03','BIRDS','翼龙','亿年前的空中霸主','~/Prod_Images/Birds/icon-pteranodon.gif',2100);insert into product values('BD-04','BIRDS','猫头鹰','日夜守候','~/Prod_Images/Birds/icon-owl.gif',40);insert into product values('BD-05','BIRDS','鸭子','口齿不清但歌声美妙','~/Prod_Images/Birds/icon-duck.gif',32);insert into product values('BG-01','BUGS','蚂蚁','搬运工','~/Prod_Images/Bugs/icon-ant.gif',2);insert into product values('BG-02','BUGS','蝴蝶','越大越美','~/Prod_Images/Bugs/icon-butterfly.gif',8);insert into product values('BG-03','BUGS','蜘蛛','冷酷美','~/Prod_Images/Bugs/icon-spider.gif',5);insert into product values('BG-04','BUGS','蜗牛','你的柔软伙伴','~/Prod_Images/Bugs/icon-slug.gif',7);insert into product values('BG-05','BUGS','青蛙','想灭蚊吗','~/Prod_Images/Bugs/icon-frog.gif',12);insert into product values('BG-06','BUGS','蜻蜓','精致的宠物','~/Prod_Images/Bugs/icon-dragonfly.gif',3);insert into product values('BY-01','BACKYARD','绵羊','软绵绵的拥抱','~/Prod_Images/Backyard/icon-sheep.gif',120);insert into product values('BY-02','BACKYARD','猫','多情而敏感','~/Prod_Images/Backyard/icon-cat.gif',80);insert into product values('BY-03','BACKYARD','浣熊','胃口不错','~/Prod_Images/Backyard/icon-raccoon.gif',240);insert into product values('BY-04','BACKYARD','鹅','曲项向天歌','~/Prod_Images/Backyard/icon-goose.gif',45);insert into product values('BY-05','BACKYARD','巨蟹','冰箱里出现','~/Prod_Images/Backyard/icon-crad.gif',28);insert into product values('BY-06','BACKYARD','臭鼬','味道比较浓厚','~/Prod_Images/Backyard/icon-skunk.gif',98);insert into product values('BY-07','BACKYARD','斑马','摩登的美女','~/Prod_Images/Backyard/icon-zebra.gif',820);insert into product values('FI-01','FISH','丑鱼','海底总动员','~/Prod_Images/Fish/icon-meno.gif',20);insert into product values('FI-02','FISH','河豚','温度越高,身体越大','~/Prod_Images/Fish/icon-ballonfish.gif',18);insert into product values('FI-03','FISH','盲鱼','视觉退化','~/Prod_Images/Fish/icon-blindfish.gif',34);insert into product values('FI-04','FISH','海蟹','喂食时会跳舞','~/Prod_Images/Fish/icon-cradfish.gif',16);insert into product values('FI-05','FISH','章鱼','给你按摩','~/Prod_Images/Fish/icon-eucalyptus.gif',27);insert into product values('FI-07','FISH','鲨鱼','小心咬你','~/Prod_Images/Fish/icon-nosyfish.gif',360);insert into product values('FI-08','FISH','巨齿鱼','素食动物','~/Prod_Images/Fish/icon-toothferry.gif',280);



userprofile1.aspx
  •  
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="UserProfile1.aspx.cs" Inherits="dynamicweb11_1.UserProfile1" MasterPageFile="~/MasterPage1.Master" %><asp:Content runat="server" ContentPlaceHolderID="cphPage"><!--代码编写:虾米大王邮箱:modern358@163.com完成日期:2021年4月10日-->    <div class="profilePostition">        <div class="checkoutHeaders">            个人信息        </div>        <div class="info">            用户名:<asp:Label ID="lblName" runat="server" Text="" CssClass="info"></asp:Label>        </div>        <!--个人资料修改-->        <asp:FormView ID="fvAccount" runat="server" DataKeyNames="user_name" DataSourceID="sdsAccount" DefaultMode="Edit" OnItemUpdated="fvAccount_ItemUpdated">            <EditItemTemplate>                <table style="border-bottom:1px dotted #555555;border-spacing:0;padding:0;border-collapse:collapse;">                    <tr>                        <td class="label" width="50%" style="height:50px;">                            姓名:<br />                            <asp:TextBox ID="txtCname" runat="server" Text='<%# Bind("cname") %>' CssClass="checkoutTextbox" MaxLength="80" Width="155px"></asp:TextBox><br />                            <asp:RequiredFieldValidator ID="valFirstName" runat="server" ControlToValidate="txtCname" ErrorMessage="输入姓名" Display="Dynamic" Font-Size="Small" ForeColor="Red"></asp:RequiredFieldValidator>                        </td>                        <td class="label" width="40%">&nbsp;</td>                    </tr>                    <tr>                        <td class="label" style="height:50px;">                            国家:<br />                            <asp:TextBox ID="txtCountry" runat="server" Text='<%# Bind("country") %>' CssClass="checkoutTextbox" MaxLength="80" Width="155px"></asp:TextBox><br />                            <asp:RequiredFieldValidator ID="valCountry" runat="server" ControlToValidate="txtCountry" ErrorMessage="输入国家" Display="Dynamic" Font-Size="Small" ForeColor="Red"></asp:RequiredFieldValidator>                        </td>                        <td class="label">                            省:<br />                            <asp:TextBox ID="txtProvince" runat="server" Text='<%# Bind("province") %>' CssClass="checkoutTextbox" MaxLength="80" Width="155px"></asp:TextBox><br />                            <asp:RequiredFieldValidator ID="valProvince" runat="server" ControlToValidate="txtProvince" ErrorMessage="输入省份" Display="Dynamic" Font-Size="Small" ForeColor="Red"></asp:RequiredFieldValidator>                        </td>                    </tr>                    <tr>                        <td class="label" style="height:50px;">                            城市:<br />                            <asp:TextBox ID="txtCity" runat="server" Text='<%# Bind("city") %>' CssClass="checkoutTextbox" MaxLength="80" Width="155px"></asp:TextBox><br />                            <asp:RequiredFieldValidator ID="valCity" runat="server" ControlToValidate="txtCity" ErrorMessage="输入城市" Display="Dynamic" Font-Size="Small" ForeColor="Red"></asp:RequiredFieldValidator>                        </td>                        <td class="label" style="height:50px;">                            邮编:<br />                            <asp:TextBox ID="txtZipcode" runat="server" Text='<%# Bind("zip_code") %>' CssClass="checkoutTextbox" MaxLength="80" Width="80px"></asp:TextBox><br />                            <asp:RequiredFieldValidator ID="valZipcode" runat="server" ControlToValidate="txtZipcode" ErrorMessage="输入邮编" Display="Dynamic" Font-Size="Small" ForeColor="Red"></asp:RequiredFieldValidator>                        </td>                    </tr>                    <tr>                        <td class="label" colspan="2" style="height:50px;">                            地址:<br />                            <asp:TextBox ID="txtAddress" runat="server" Text='<%# Bind("address") %>' CssClass="checkoutTextbox" MaxLength="80" Width="330px"></asp:TextBox><br />                            <asp:RequiredFieldValidator ID="valAddress" runat="server" ControlToValidate="txtAddress" ErrorMessage="输入地址" Display="Dynamic" Font-Size="Small" ForeColor="Red"></asp:RequiredFieldValidator>                        </td>                    </tr>                    <tr>                        <td class="label" colspan="2" style="height:50px;">                            电话:<br />                            <asp:TextBox ID="txtPhone" runat="server" Text='<%# Bind("phone") %>' CssClass="checkoutTextbox" MaxLength="80" Width="155px"></asp:TextBox><br />                            <asp:RequiredFieldValidator ID="valPhone" runat="server" ControlToValidate="txtPhone" ErrorMessage="输入电话" Display="Dynamic" Font-Size="Small" ForeColor="Red"></asp:RequiredFieldValidator>                        </td>                    </tr>                    <tr>                        <td class="label" colspan="2" style="height:70px;" valign="top">                            电子邮箱:<br />                            <asp:TextBox ID="txtEmail" runat="server" Text='<%# Bind("email") %>' CssClass="checkoutTextbox" MaxLength="80" Width="330px"></asp:TextBox><br />                            <asp:RequiredFieldValidator ID="valEmail" runat="server" ControlToValidate="txtEmail" ErrorMessage="输入电子邮件" Display="Dynamic" Font-Size="Small" ForeColor="Red"></asp:RequiredFieldValidator>                            <asp:RegularExpressionValidator ID="valEmail1" ControlToValidate="txtEmail" runat="server" ErrorMessage="无效的Email地址" Display="Dynamic" Font-Size="Small" ForeColor="Red" ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"></asp:RegularExpressionValidator>                        </td>                    </tr>                </table>                <div class="checkoutButtonBg">                    <!--提交更新的命令按钮-->                    <asp:LinkButton ID="btnSubmit" runat="server" CausesValidation="true" CommandName="Update" CssClass="submit" Text="更新"></asp:LinkButton>                </div>            </EditItemTemplate>        </asp:FormView>        <asp:SqlDataSource ID="sdsAccount" runat="server" ConnectionString="<%$ ConnectionStrings:cnPetShop %>" SelectCommand="SELECT * FROM [account] WHERE ([user_name] = @user_name)" UpdateCommand="UPDATE [account] SET [cname] = @cname, [country] = @country, [province] = @province, [city] = @city, [address] = @address, [zip_code] = @zip_code, [phone] = @phone, [email] = @email WHERE [user_name] = @user_name" OnSelecting="sdsAccount_Selecting">            <SelectParameters>                <asp:Parameter Name="user_name" Type="String" />            </SelectParameters>            <UpdateParameters>                <asp:Parameter Name="cname" Type="String" />                <asp:Parameter Name="country" Type="String" />                <asp:Parameter Name="province" Type="String" />                <asp:Parameter Name="city" Type="String" />                <asp:Parameter Name="address" Type="String" />                <asp:Parameter Name="zip_code" Type="String" />                <asp:Parameter Name="phone" Type="String" />                <asp:Parameter Name="email" Type="String" />                <asp:Parameter Name="user_name" Type="String" />            </UpdateParameters>        </asp:SqlDataSource>        <!--操作结果信息-->        <asp:Label ID="lblMessage" runat="server" Text="" CssClass="label"></asp:Label>    </div></asp:Content>
userprofile1.aspx.cs
  •  
using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;/*****************************
代码编写:虾米大王邮箱:modern358@163.com完成日期:2021年4月10日 ******************************/namespace dynamicweb11_1{ public partial class UserProfile1 : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e){ if (Session["UserName"] != null) { lblName.Text = Session["UserName"].ToString(); } else { Response.Redirect("~/SignIn1.aspx?from=~/UserProfile1.aspx"); } }
protected void sdsAccount_Selecting(object sender, SqlDataSourceSelectingEventArgs e){ if (Session["UserName"] != null) { e.Command.Parameters[0].Value = Session["UserName"].ToString(); } else { return; } }
protected void fvAccount_ItemUpdated(object sender, FormViewUpdatedEventArgs e){ lblMessage.Text = "你的资料已完成更新<br>"; } }}
web.config
  •  
<?xml version="1.0" encoding="utf-8"?>
<!-- 有关如何配置 ASP.NET 应用程序的详细信息,请访问 http://go.microsoft.com/fwlink/?LinkId=169433 -->
<configuration> <connectionStrings> <add name="cnPetShop" connectionString="Data Source=LAPTOP-AQKEN65V\SQLEXPRESS08;Initial Catalog=netPetShop;Persist Security Info=True;User ID=sa;Password=123456" providerName="System.Data.SqlClient" /> </connectionStrings> <system.web> <compilation debug="true" targetFramework="4.5" /> <httpRuntime targetFramework="4.5" /> <pages theme="PetShop1"></pages> </system.web>
</configuration>