📄 gocertogo.aspx
字号:
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System" %>
<%@ Import Namespace="System.Data.oledb" %>
<html>
<head>
<title>电子商店</title>
<script language="VB" runat=server>
public Sub Page_Load(sender As Object, e As EventArgs)
if (Not IsPostBack) Then
'预设货价上的商品
ProductListing.SelectedIndex =0
UpdateProducts()
End If
End Sub
'更新被选中的商品
public Sub ProductListing_Select(sender As Object, e As EventArgs)
UpdateProducts()
End Sub
'更新货价上的商品种类
public Sub CategoryList_Select(sender As Object, e As EventArgs)
CurrentCategory.Text = CategoryList.Items(CategoryList.SelectedIndex).Text
UpdateProducts()
End Sub
'将商品放入购物篮
public Sub AddBtn_Click(sender As Object, e As ImageClickEventArgs)
Dim productID As Integer
Dim OrderList As ArrayList
Dim qtyList As ArrayList
'获取已经放入购物篮中的商品列表
OrderList=Session("orderList")
qtyList=Session("qtyList")
'获取所选中的商品的编号
productID=ProductListing.DataKeys(ProductListing.SelectedIndex)
'首先检查是否已经有订购了这种商品
If OrderList.IndexOf(productID)=-1 Then
'将商品添加到购物篮中
OrderList.Add(productID)
'预设商品的件数为1
qtyList.Add("1")
Else
'如果该商品已经在购物篮中,则将其数量加一
Dim num As integer= OrderList.IndexOf(productID)
qtyList(num)=CInt(qtyList(num))+1
End If
'使用Session对象存储购物篮
Session("orderlist")=orderlist
Session("qtylist")=qtylist
'重新显示购物篮
UpdateShoppingCart()
End Sub
'更新购物篮
Sub UpdateShoppingCart()
'根据当前的session变量生成一张数据表
Dim dt As New DataTable()
Dim OrderList As ArrayList
Dim qtyList As ArrayList
Dim i As Integer
Dim product As DataRow
Dim productId as integer
'创建一个新表
Dim myDataTable As DataTable=New DataTable("myDataTable")
'声明行和列
Dim myDataColumn As DataColumn
Dim myDataRow As DataRow
'创建数据列
myDataColumn=New DataColumn()
myDataColumn.DataType= System.Type.GetType("System.Int32")
myDataColumn.ColumnName = "qty"
myDataTable.Columns.Add(myDataColumn)
myDataColumn = New DataColumn()
myDataColumn.DataType =System.Type.GetType("System.String")
myDataColumn.ColumnName = "productname"
myDataTable.Columns.Add(myDataColumn)
myDataColumn = New DataColumn()
myDataColumn.DataType =System.Type.GetType("System.Double")
myDataColumn.ColumnName ="price"
myDataTable.Columns.Add(myDataColumn)
myDataColumn = New DataColumn()
myDataColumn.DataType =System.Type.GetType("System.Double")
myDataColumn.ColumnName = "total"
myDataTable.Columns.Add(myDataColumn)
' 创建数据行
OrderList=Session("orderList")
qtyList=Session("qtyList")
for i=0 to OrderList.count-1
productId=OrderList(i)
product=GetProduct(productId)
mydatarow=myDataTable.NewRow()
mydatarow("qty")=qtylist(i)
mydatarow("productname")=product("productname")
mydatarow("price")=product("price")
mydatarow("total")=mydatarow("qty")*product("price")
myDataTable.Rows.Add(myDataRow)
Next
ShoppingCartList.datasource=mydatatable.defaultview
ShoppingCartList.databind()
'更新收银台帐目
updateshopchart()
End Sub
'更新收银台帐目
sub updateshopchart()
Dim OrderList As ArrayList
Dim qtyList As ArrayList
Dim productId As Integer
Dim product As DataRow
Dim i As Integer
Dim subt,tal As Double
Dim de as double=0.9
OrderList=Session("orderList")
qtyList=Session("qtyList")
'统计总费用
subt=0
for i=0 to OrderList.count-1
productId=OrderList(i)
product=GetProduct(productId)
subt+=product("price")*qtylist(i)
Next
'显示总费用及打折后的费用
tal=subt*de
subtotal.text=string.format("{0:C}",subt)
dec.text=de
total.text=string.format("{0:C}",tal)
End sub
'根据商品编号获取商品的信息
Function GetProduct(productID As Integer) As DataRow
Dim myConnString As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & server.MapPath("product.mdb")
Dim myConnection As New OleDbConnection(myConnString)
Dim product As New DataSet()
myConnection.Open()
Dim Adapter1 as OleDbDataAdapter
Adapter1=new OleDbDataAdapter("Select * from Product where productID=" & productID, myConnection)
Adapter1.Fill(product, "product")
'返回该商品对应的数据记录
GetProduct=product.Tables(0).Rows(0)
myConnection.Close()
End function
'更新货架上的所有商品
Sub UpdateProducts()
Dim categoryID As Integer
'获取货价种类编号
categoryID=CategoryList.Items(CategoryList.SelectedIndex).value
Dim myConnString As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & server.MapPath("product.mdb")
Dim myConnection As New OleDbConnection(myConnString)
myConnection.Open()
'将该种类的商品生成一张数据表products
Dim Adapter1 as OleDbDataAdapter
Adapter1=new OleDbDataAdapter("Select * from Product where categoryid=" & categoryID, myConnection)
Dim products As New Dataset
Adapter1.Fill(products, "products")
ProductListing.DataSource=products.Tables(0).DefaultView
ProductListing.DataBind()
'更新商品信息
Dim productID As Integer
'获取当前被选中的商品的编号
productID=ProductListing.DataKeys(ProductListing.SelectedIndex)
'获取当前商品的详细信息
Dim mySelectQuery As String = "Select detail,ProductName,Image from Product where productID=" & ProductId
Dim myCommand As New OleDbCommand(mySelectQuery, myConnection)
Dim myReader As OleDbDataReader=myCommand.ExecuteReader()
'输出当前商品的名称、说明和对应的图片
if myReader.Read() then
detail.text=myReader.GetString(0)
productname.text=myReader.GetString(1)
SelectedProdPicture.Src = myReader.GetString(2)
End if
myConnection.Close()
End sub
'清空购物篮
sub ClearCart_Click(sender As Object, e As ImageClickEventArgs)
'清空Session对象中的购物信息
Session("orderlist")=new ArrayList()
Session("qtylist")=new ArrayList()
'更新购物篮
UpdateShoppingCart()
End Sub
'重新计算收银台的帐目
public Sub Recalculate_Click(sender As Object, e As ImageClickEventArgs)
Dim qty As textbox
Dim item as DataGridItem
Dim i as integer
'将购物篮中的商品数目重新写入qytlist
for i=0 to session("orderlist").count-1
qty=ctype(ShoppingCartList.Items(i).FindControl("Qty"),textbox)
session("qtylist")(i)=qty.text
next
'更新购物篮
UpdateShoppingCart()
End Sub
</script>
</head>
<body topmargin="0" leftmargin="0" marginwidth="0" marginheight="0">
<Form runat="server">
<table cellspacing=0 cellpadding=3 bgcolor="white" border=0 width="100%">
<tr>
<td align="left"><img src="images/logo.gif"></td>
<td align="right">
<a><img border=0 src="images/home.gif"></a>
</td>
</tr>
<tr>
<td align="right" class="select" colspan="2">
<b>选择商品种类: </b>
<select id="CategoryList" style="width:100" runat="server">
<option selected value="1">时尚用品</option>
<option value="2">食品饮料</option>
<option value="3">书刊杂志</option>
</select>
<asp:button text="选择" OnClick="CategoryList_Select" runat=server/>
</td>
</tr>
</table>
<table border=0 width=100% cellspacing=0 cellpadding=15 bgcolor="white">
<tr>
<td valign=top bgcolor=bbffcc>
<p>
<h3>
<b>商品种类: <asp:label id="CurrentCategory" runat=server></asp:label><b>
</h3>
<table width="100%" cellpadding=0 cellspacing=0 >
<tr style="padding-left:12">
<td align="center" style="border-style:inset;" bgcolor="white" width=140>
<img id="SelectedProdPicture" runat=server>
</td>
<td align="center" bgcolor="bbffcc" style="padding-right:0;">
<table cellpadding=1 >
<tr>
<td colspan=3>
<b><font face="Verdana" size=3><asp:label id="Name" runat=server> </asp:label></font></b>
</td>
<td align=right>
<asp:imagebutton ImageUrl="images/addcart.gif" OnClick="AddBtn_Click" runat=server/>
</td>
</tr>
<tr>
<td colspan=4>
<asp:label id=productname runat="Server"/>
</td>
</tr>
<tr>
<td colspan=4>
<asp:textbox textmode="multiline" id="detail" readonly=true
columns=40 rows=4 backcolor="#bbffcc"
borderstyle="dotted" runat="server"/>
</td>
</tr>
</table>
</td>
</tr>
</table>
<p>
<table>
<tr>
<td>
<asp:datalist id="ProductListing"
DataKeyField="ProductId" showheader=false
showfooter=false OnSelectedIndexChanged="ProductListing_Select"
repeatdirection="horizontal" borderwidth=0 runat="server">
<ItemTemplate>
<table>
<tr>
<td width="150">
<asp:imagebutton borderwidth=6 bordercolor="#ffffcc"
commandname="Select" ImageUrl='<%# DataBinder.Eval(Container.DataItem, "Image") %>'
runat=server/>
<p>
<%# DataBinder.Eval(Container.DataItem, "ProductName") %> <br>
<%# DataBinder.Eval(Container.DataItem, "Price", "{0:C}") %><br>
</td>
</tr>
</table>
</ItemTemplate>
<SelectedItemTemplate>
<table>
<tr>
<td width="150">
<asp:imagebutton borderwidth=6 bordercolor="red"
commandname="select" ImageUrl='<%#
DataBinder.Eval(Container.DataItem, "Image") %>' runat=server/>
<p>
<%# DataBinder.Eval(Container.DataItem, "Productname") %><br>
<%# DataBinder.Eval(Container.DataItem, "price", "{0:C}") %><br>
</td>
</tr>
</table>
</SelectedItemTemplate>
</asp:datalist>
</td>
</tr>
</table>
</td>
<td width="315" valign=top class="cart" bgcolor="#EDBE7B">
<h3>购物篮</h3>
<asp:DataGrid id="ShoppingCartList"
BorderColor="black"
BorderWidth="1"
CellPadding="3"
AutoGenerateColumns="false"
runat="server">
<HeaderStyle BackColor="#00aaaa">
</HeaderStyle>
<Columns>
<asp:BoundColumn
HeaderText="商品"
DataField="productname"/>
<asp:TemplateColumn
Headertext="数量">
<ItemTemplate>
<asp:textbox size=1 id="Qty" runat=server
text='<%# DataBinder.Eval(Container.DataItem, "Qty") %>'/>
</ItemTemplate>
</asp:TemplateColumn>
<asp:BoundColumn
HeaderText="单价"
DataField="price"
DataFormatString="{0:c}"/>
<asp:BoundColumn
HeaderText="总计"
DataField="total"
DataFormatString="{0:c}">
<ItemStyle HorizontalAlign="right">
</ItemStyle>
</asp:BoundColumn>
</Columns>
</asp:DataGrid>
<table border=0 width="100%">
<tr>
<td colspan=3><hr></td>
</tr>
<tr>
<td width=225 colspan="2" align="left">
<b>总共</b>
</td>
<td align="right" style="padding-right:10">
<asp:label id="subtotal" runat=server/>
</td>
</tr>
<tr>
<td width=225 colspan="2" align="left">
<b>打折</b>
</td>
<td align="right" style="padding-right:10">
<asp:label id="dec" runat=server/>
</td>
</tr>
<tr>
<td width=225 colspan="2" align="left">
<b>支付</b>
</td>
<td align="right" style="padding-right:10">
<b><asp:label id="Total" runat=server/></b>
</td>
</tr>
</table>
<p>
<div id="CheckoutPanel" runat="server">
<center>
<asp:imagebutton borderwidth=0 OnClick="Recalculate_Click"
ImageUrl='images\recalculate.gif' runat=server/>
<asp:HyperLink id="check" NavigateUrl="check.aspx"
ImageUrl='images\checkout.gif' runat=server/>
<asp:imagebutton borderwidth=0 OnClick="ClearCart_Click"
ImageUrl='images\clear_cart.gif' runat=server/>
</center>
</div>
</td>
</tr>
</table>
</form>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -