📄 checkout.aspx
字号:
<%@ Page Language="C#" Inherits="IBuyAdventure.PageBase" src="../components/stdpage.cs" clienttarget=downlevel %>
<%@ Register TagPrefix="IBA" TagName="Header" Src="..\UserControl\Header.ascx" %>
<%@ Register TagPrefix="IBA" TagName="Categories" Src="..\UserControl\Categories.ascx" %>
<%@ Register TagPrefix="IBA" TagName="Footer" Src="..\UserControl\Footer.ascx" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Globalization" %>
<html>
<head>
<title>IBuyAdventure Catalog</title>
</head>
<script language="C#" runat="server">
// Total for shopping basket
double fTotal = 0;
void Page_Load(Object sender, EventArgs e) {
IBuyAdventure.CartDB cart = new IBuyAdventure.CartDB(getConnStr());
// If a new product to add is specified, add it to the shopping cart
if (Request.Params["ProductCode"] != null)
cart.AddShoppingCartItem(GetCustomerID(), Request.Params["ProductCode"]);
// If page is not being loaded in response to postback
if (Page.IsPostBack == false)
PopulateShoppingCartList();
status.Text = "Please confirm you want to order the following items:";
}
void Confirm_Order(Object sender, EventArgs e) {
IBuyAdventure.CartDB cart = new IBuyAdventure.CartDB(getConnStr());
double totalOrderValue = cart.GetOrderValueForCart(GetCustomerID());
IBuyAdventure.OrdersDB orders = new IBuyAdventure.OrdersDB(getConnStr());
orders.AddNewOrder(GetCustomerID(), DateTime.Now.ToString("G", DateTimeFormatInfo.InvariantInfo), totalOrderValue );
cart.ResetShoppingCart( GetCustomerID() );
Response.Redirect("confirmed.aspx");
}
void Cancel_Order(Object sender, EventArgs e) {
IBuyAdventure.ProductsDB inventory = new IBuyAdventure.ProductsDB(getConnStr());
IBuyAdventure.CartDB cart = new IBuyAdventure.CartDB(getConnStr());
cart.ResetShoppingCart( GetCustomerID() );
Response.Redirect("/IBuyAdventure/default.aspx");
}
String GetCustomerID() {
if (User.Identity.Name != "")
return Context.User.Identity.Name;
else {
if (Session["AnonUID"] == null)
Session["AnonUID"] = Guid.NewGuid();
return Session["AnonUID"].ToString();
}
}
void UpdateShoppingCartDatabase() {
IBuyAdventure.ProductsDB inventory = new IBuyAdventure.ProductsDB(getConnStr());
IBuyAdventure.CartDB cart = new IBuyAdventure.CartDB(getConnStr());
// Iterate through all rows within shopping cart list
for (int i=0; i<MyList.Items.Count; i++) {
// Obtain references to row's controls
TextBox quantityTxt = (TextBox) MyList.Items[i].FindControl("Quantity");
CheckBox remove = (CheckBox) MyList.Items[i].FindControl("Remove");
HtmlInputHidden shoppingCartIDTxt = (HtmlInputHidden) MyList.Items[i].FindControl("ShoppingCartID");
// If removed checkbox selected, delete the item. Otherwise, update its
// quantity (todo: should only update if value was been changed)
// Convert quantity to a number
int Quantity = Int32.Parse(quantityTxt.Text);
if (remove.Checked == true || Quantity == 0)
cart.DeleteShoppingCartItem(Int32.Parse(shoppingCartIDTxt.Value));
else
cart.UpdateShoppingCartItem(Int32.Parse(shoppingCartIDTxt.Value), Quantity );
}
}
void PopulateShoppingCartList() {
// Populate list with updated shopping cart data
IBuyAdventure.ProductsDB inventory = new IBuyAdventure.ProductsDB(getConnStr());
IBuyAdventure.CartDB cart = new IBuyAdventure.CartDB(getConnStr());
DataSet ds = cart.GetShoppingCartItems(GetCustomerID());
MyList.DataSource = ds;
MyList.DataBind();
DataTable dt;
dt = ds.Tables[0];
int lIndex, Quantity;
double UnitPrice;
for ( lIndex =0; lIndex < dt.Rows.Count; lIndex++ ) {
UnitPrice = (double) dt.Rows[lIndex]["UnitPrice"];
Quantity = (int) dt.Rows[lIndex]["Quantity"];
if ( Quantity > 0 )
fTotal += UnitPrice * Quantity;
}
}
</script>
<body background="/IBuyAdventure/images/back_sub.gif">
<form runat="server">
<font face="Verdana, Arial, Helvetica" size="2">
<table border="0" valign="top" width="100%">
<tr>
<td colspan="5">
<IBA:Header id="Header" runat="server"/>
</td>
</tr>
<!--Begin Navigational Buttons-->
<tr valign="top">
<td width="95" align="left" valign="top">
<IBA:Categories id="Categories" runat="server"/>
</td>
<td>
</td>
<td valign="top" align="left">
<h2>Check Out</h2>
<font size="2"><asp:label id="status" runat="server" /></font><br><br>
<table colspan="8" cellpadding="5" border="0" valign="top">
<!-- BEGIN column header row -->
<tr valign="top">
<td align="center" bgcolor="#800000">
<font style="Verdana, Arial, Helvetica" color="#ffffff" size="2">Product Code</font>
</td>
<td align="center" bgcolor="#800000">
<font style="Verdana, Arial, Helvetica" color="#ffffff" size="2">Product Name</font>
</td>
<td align="center" width=250 bgcolor="#800000">
<font style="Verdana, Arial, Helvetica" color="#ffffff" size="2">Description</font>
</td>
<td align="center" bgcolor="#800000">
<font style="Verdana, Arial, Helvetica" color="#ffffff" size="2">Quantity</font>
</td>
<td align="center" bgcolor="#800000">
<font style="Verdana, Arial, Helvetica" color="#ffffff" size="2">Unit Price</font>
</td>
<td align="center" bgcolor="#800000">
<font style="Verdana, Arial, Helvetica" color="#ffffff" size="2">Unit Total</font>
</td>
</tr>
<asp:repeater id="MyList" runat="server">
<itemtemplate>
<tr>
<td align="center" bgcolor="#f7efde">
<input id="ShoppingCartID" type=hidden value='<%#DataBinder.Eval(Container.DataItem, "ShoppingCartID").ToString()%>' runat="server">
<font style="Verdana, Arial, Helvetica" color="black" size="2">
<%#DataBinder.Eval(Container.DataItem, "ProductCode")%>
</font>
</td>
<td align="center" bgcolor="#f7efde">
<font style="Verdana, Arial, Helvetica" color="black" size="2">
<%#DataBinder.Eval(Container.DataItem, "ProductName")%>
</font>
</td>
<td align=left width=250 bgcolor="#f7efde">
<font style="Verdana, Arial, Helvetica" color="black" size="2">
<%#DataBinder.Eval(Container.DataItem, "Description")%>
</font>
</td>
<td align="center" bgcolor="#f7efde">
<font style="Verdana, Arial, Helvetica" color="black" size="2">
<asp:label text=<%#DataBinder.Eval(Container.DataItem, "Quantity").ToString()%> width=30 runat="server"/>
</font>
</td>
<td align="center" bgcolor="#f7efde">
<font style="Verdana, Arial, Helvetica" color="black" size="2">
<asp:label id="UnitPrice" runat="server"><%#DataBinder.Eval(Container.DataItem, "UnitPrice", "{0:C}")%></asp:label>
</font>
</td>
<td align="center" bgcolor="#f7efde">
<font style="Verdana, Arial, Helvetica" color="black" size="2">
<%# String.Format("{0:C}", ( ((int)DataBinder.Eval(Container.DataItem, "Quantity")) * ((double) DataBinder.Eval(Container.DataItem, "UnitPrice")) )) %>
</font>
</td>
</tr>
</itemtemplate>
</asp:repeater>
<tr>
<td colspan="4"><td colspan="2" align="right">
<font style="Verdana, Arial, Helvetica" color="black" size="2">
Total is <%=String.Format( "{0:C}", fTotal) %>
</font>
</td>
</tr>
<tr>
<td colspan="8" align="right">
<asp:button text="Cancel Order (Clears Basket)" OnClick="Cancel_Order" runat="server"/>
<asp:button text="Confirm Order" OnClick="Confirm_Order" runat="server"/>
</td>
</tr>
</table>
<br>
<IBA:Footer runat="server" />
</td>
</tr>
</table>
</font>
</form>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -