📄 checkout.aspx
字号:
<%@ Page Language="VB" Inherits="IBuyAdventure.PageBase" src="../components/stdpage.vb" 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="VB" runat="server">
' Total for shopping basket
Dim fTotal As Double = 0
Public Sub Page_Load(sender As Object, e As EventArgs)
Dim cart As New IBuyAdventure.CartDB(getConnStr())
' If a new product to add is specified, add it to the shopping cart
If Request.Params("ProductCode") <> "" Then
cart.AddShoppingCartItem(GetCustomerID(), Request.Params("ProductCode"))
End If
' If page is not being loaded in response to postback
If Page.IsPostBack = False Then
PopulateShoppingCartList()
End If
status.Text = "Please confirm you want to order the following items:"
End Sub
Sub Confirm_Order(sender As Object, e As EventArgs)
Dim cart As New IBuyAdventure.CartDB(getConnStr())
Dim totalOrderValue As Double = cart.GetOrderValueForCart(GetCustomerID())
Dim orders As New IBuyAdventure.OrdersDB(getConnStr())
orders.AddNewOrder(GetCustomerID(), DateTime.Now.ToString("G", DateTimeFormatInfo.InvariantInfo), totalOrderValue )
cart.ResetShoppingCart(GetCustomerID())
Response.Redirect("confirmed.aspx")
End Sub
Sub Cancel_Order(sender As Object, e As EventArgs)
Dim inventory As New IBuyAdventure.ProductsDB(getConnStr())
Dim cart As New IBuyAdventure.CartDB(getConnStr())
cart.ResetShoppingCart(GetCustomerID())
Response.Redirect("/IBuyAdventure/default.aspx")
End Sub
Function GetCustomerID() As String
If User.Identity.Name <> "" Then
Return Context.User.Identity.Name
Else
If Session("AnonUID") Is Nothing
Session("AnonUID") = Guid.NewGuid()
End If
Return Session("AnonUID").ToString()
End If
End Function
Sub UpdateShoppingCartDatabase()
Dim inventory As New IBuyAdventure.ProductsDB(getConnStr())
Dim cart As New IBuyAdventure.CartDB(getConnStr())
' Iterate through all rows within shopping cart list
Dim i As Integer
For i=0 To MyList.Items.Count
' Obtain references to row's controls
Dim quantityTxt As TextBox = MyList.Items(i).FindControl("Quantity")
Dim remove As CheckBox = MyList.Items(i).FindControl("Remove")
Dim shoppingCartIDTxt As 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
Dim Quantity As Integer = Int32.Parse(quantityTxt.Text)
If remove.Checked = True Or Quantity = 0 Then
cart.DeleteShoppingCartItem(Int32.Parse(shoppingCartIDTxt.Value))
Else
cart.UpdateShoppingCartItem(Int32.Parse(shoppingCartIDTxt.Value), Quantity )
End If
Next
End Sub
Sub PopulateShoppingCartList()
' Populate list with updated shopping cart data
Dim inventory As New IBuyAdventure.ProductsDB(getConnStr())
Dim cart As New IBuyAdventure.CartDB(getConnStr())
Dim ds As DataSet = cart.GetShoppingCartItems(GetCustomerID())
MyList.DataSource = ds
MyList.DataBind()
Dim dt As DataTable
dt = ds.Tables(0)
Dim lIndex, Quantity As Integer
Dim UnitPrice As Double
For lIndex = 0 To dt.Rows.Count - 1
UnitPrice = dt.Rows(lIndex)("UnitPrice")
Quantity = dt.Rows(lIndex)("Quantity")
If Quantity > 0 Then
fTotal += UnitPrice * Quantity
End If
Next
End Sub
</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}", (DataBinder.Eval(Container.DataItem, "Quantity") * 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 + -