<%@ Язык страницы="c#" Codebehind="shoppingcart.aspx.cs" AutoEventWireup="false" Inherits="myshop.shoppingcart" %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional// RU" ><HTML> <HEAD>
<название>корзина
</название>
<meta http-equiv="Content-Type" content="text/html;
charset=gb2312"> <LINK href="mycss.css" type="text/css" rel="stylesheet">
<meta name="vs_defaultClientScript" content="JavaScript">
<meta name="vs_targetSchema" content=" http://schemas.microsoft.com/intellisense/ie5 "> </HEAD>
<тело> <центр>
<form id="Form1" runat="server"> <ширина таблицы="500" border="0" cellpacing="0" cellpadding="0"> <tr> <td>
<asp:DataGrid id="ShoppingCartDlt" runat="server" Width="500" BackColor="white" BorderColor="black" ShowFooter="false" CellPadding="3" CellSpacing="0" Font-Name="Verdana" " Font-Size="8pt" HeaderStyle-BackColor="#cecfd6" AutoGenerateColumns="false" MaintenanceState="true"> <Столбцы>
<asp:TemplateColumn HeaderText="删除">
<Шаблон элемента> <центр>
<asp:CheckBox id="chkProductID" runat="server" /> </center>
</ItemTemplate> </asp:TemplateColumn>
<asp:BoundColumn DataField="ProdID" HeaderText="ID" />
<asp:BoundColumn DataField="ProName" HeaderText="商品名称" />
<asp:BoundColumn DataField="UnitPrice" HeaderText="单价" />
<asp:TemplateColumn HeaderText="数量">
<Шаблон предмета>
<asp:TextBox id="CountTb" runat="server" Text='<%#DataBinder.Eval( Container.DataItem,"ProdCount" )%>'> </asp:TextBox>
</ItemTemplate> </asp:TemplateColumn>
<asp:BoundColumn DataField="TotalPrice" HeaderText="小计( 元 )" /> </Columns> </asp:DataGrid></td> </tr> </table> <br> <ширина таблицы=" 500" border="0" cellpacing="0" cellpadding="0"> <tr> <td>
<asp:Button id="update" runat="server" Text="更新我的购物车" CssClass="button2" /></td> <td>
<asp:Button id="CheckOut" runat="server" Text="结算" CssClass="button5" />
<input type="button" name="close2" value="继续购物" onClick="window.close ( );
вернуть ложь;
" class="button2"></td> <td align="right"><br>
<asp:Label id="label" runat="server" Width="100px" Visible="True" ForeColor="#FF8080" Height="18px"></asp:Label></td> </tr> </таблица>
</форма> </центр>
</body></HTML>======================================== ==========================================以上为HTML页面部分
=============================================== ======================================
использование системы;
использование System.Collections;
использование System.ComponentModel;
использование System.Web.SessionState;
использование System.Web;
использование System.Web.UI;
использование System.Web.UI.HtmlControls;
использование System.Web.UI.WebControls;
использование System.Data;
используя System.Data.OleDb;
использование System.Configuration;
пространство имен
{
/// <сводка> /// корзина покупок 的摘要说明. /// </summary> корзина общественного класса: System.Web.UI.Page
{
защищенный System.Web.UI.WebControls.DataGrid ShoppingCartDlt;
защищенное обновление System.Web.UI.WebControls.Button;
защищенный System.Web.UI.WebControls.Button CheckOut;
защищенный System.Web.UI.HtmlControls.HtmlForm Form1;
защищенная метка System.Web.UI.WebControls.Label;
защищенный System.Web.UI.WebControls.CheckBox chkProductID;
защищенный System.Web.UI.WebControls.TextBox txtCount;
защищенный System.Web.UI.WebControls.TextBox CountTb;
строка АддПроИД;
частный void Page_Load (отправитель объекта, System.EventArgs e)
{
пытаться
{
if ( Session["logon"]!="да" Session["username"]==null )
{
Response.Redirect("error.htm");
}
}
ловить
{
Response.Redirect("error.htm");
}
//////////////查看用户是否已经登陆.
если(!IsPostBack)
{
if( Request.Params["mode"]=="view" )
{
ПросмотрКорзины( );
Калькулятор( );
}
if( Request.Params["productID"]!=null Request.Params["productID"]!="" )
{
AddProID=Запрос["IDпродукта"];
ОбновлениеКорзинаПокупок( );
Калькулятор( );
}
}
// 在此处放置用户代码以初始化页面
}
public void CreateCartTable( ) //创建购物车
{
DataSet ds = новый DataSet( );
DataTable newDT = новый DataTable( "CartTable");
ds.Tables.Add(newDT);
Столбец данных newDC;
newDC=new DataColumn("ProdID",System.Type.GetType("System.Int32" ));
ds.Tables["CartTable"].Columns.Add(newDC);
newDC = новый DataColumn( "ProdCount", System.Type.GetType( "System.Int32" ));
newDC.DefaultValue=1;
ds.Tables["CartTable"].Columns.Add(newDC);
newDC=new DataColumn("ProName",System.Type.GetType("System.String" ));
ds.Tables["CartTable"].Columns.Add(newDC);
newDC=new DataColumn("UnitPrice",System.Type.GetType("System.Double" ));
ds.Tables["CartTable"].Columns.Add(newDC);
newDC = новый DataColumn( "TotalPrice",System.Type.GetType("System.Double" ));
ds.Tables["CartTable"].Columns.Add(newDC);
newDC=new DataColumn("IsDeleted",System.Type.GetType("System.Int32" ));
newDC.DefaultValue=0;
// public void WriteShoppingCart( ) 中 newDR[5]="0";
行,已被注销, ds.Tables["CartTable"].Columns.Add(newDC);
Session["myCartTable"]=newDT;
ShoppingCartDlt.DataSource=ds.Tables["CartTable"].DefaultView;
ShoppingCartDlt.DataBind( );
}
общественная недействительность UpdateShoppingCart( )
{
if( Session["myCartTable"]==null )//Session["myCartTable"]==null
{
СоздатьКартовуюТаблицу( );
//Создание таблицы CreateCartTable( )Обмен данными DataTable WriteShoppingCart( );
}
еще
{
// таблица данных, таблица данных, таблица данных, таблица данных, функция ShoppingCartDlt WriteShoppingCart();
}
}
public void ViewShoppingCart( ) //查看购物车
{
if( Session["myCartTable"]!=null )
{
DataTable viewTable = новый DataTable( "nowCartTable");
viewTable=( DataTable )Session["myCartTable"];
ShoppingCartDlt.DataSource = viewTable.DefaultView;
//Передача данных ShoppingCartDlt ShoppingCartDlt.DataBind();
}
}
общественная недействительность WriteShoppingCart( )
{
if( Request.Params["mode"]!="view" )
{
DataTable nowTable = новый DataTable («nowCartTable»);
nowTable=( DataTable )Session["myCartTable"];
int pn=nowTable.Rows.Count;
интервал я = 0;
bool hasone = ложь;
ИНТ сейчасПродИД;
while( i<pn && !hasone )
{
nowProdID=Int32.Parse( nowTable.Rows[i][0].ToString() );
if( nowProdID==Int32.Parse( AddProID ) ) если( nowProdID==Int32.Parse(AddProID) )
{
хасоне = правда;
}
еще
{
я++;
}
}
если(хасоне)
{
// 如果已有该商品, 则 hasone=true, 更改该数据行 DataRow oldDR;
oldDR=nowTable.Rows[i];
oldDR["ProdCount"]=Int32.Parse( oldDR["ProdCount"].ToString() )+1;
oldDR["TotalPrice"]=Int32.Parse( oldDR["ProdCount"].ToString( ) )*Double.Parse( oldDR["UnitPrice"].ToString( ) );
}
еще
{
//如果没有该商品,在表中新加如一行. DataRow новыйDR;
двойной блок;
String strcon="provider=Microsoft.jet.OLEDB.4.0;
data Source="+Server.MapPath( ConfigurationSettings.AppSettings["MDBpath2"] )+";
";
OleDbConnection myConnection = новый OleDbConnection (strcon);
string strSQL="выберите * из pro где product_id="+AddProID+"";
OleDbDataAdapter myCommand = новый OleDbDataAdapter (strSQL, myConnection);
DataSet ds = новый DataSet( );
myCommand.Fill(ds, "AddP");
newDR=nowTable.NewRow();
newDR[0]=AddProID;
newDR[2]=ds.Tables["Addp"].Rows[0]["product_name"].ToString();
unitp=Double.Parse( ds.Tables["AddP"].Rows[0]["product_memprice"].ToString() );
//会员价 newDR[3]=unitp;
новыйDR[4]=unitp;
// 第一次读库,所以总价格和单价是一样的. //новыйDR[5]="0";
nowTable.Rows.Add(newDR);
моеСоединение.Закрыть( );
}
ShoppingCartDlt.DataSource = nowTable.DefaultView;
//Доступ к DataTable棒定到ShoppingCartDlt ShoppingCartDlt.DataBind();
Session["myCartTable"] = nowTable;
// таблица данных DataTable
}
}
общественный недействительный калькулятор( )
{
if( Session["myCartTable"]!=null ) // 购物车是否为空
{
интервал ч;
Двойной ТоталПри;
ТоталПри=0;
DataTable nowTable3 = новый DataTable («nowCartTable3»);
nowTable3=( DataTable )Session["myCartTable"];
if( nowTable3.Rows.Count>0 ) // 返回购物车中是否有货物
{
для (ч=0;
h<=nowTable3.Rows.Count-1;
х++ )
{
TotalPri=TotalPri+Int32.Parse( nowTable3.Rows[h][4].ToString() );
//Double.Parse( (строка)TotalText.Text);
}
label.Text="总计: "+TotalPri.ToString( )+" 元" ;
}
}
}
публичное недействительное обновление( )
{
интервал я;
интервал j;
интервал К;
ArrayList deleteItem = новый ArrayList (10);
DataGridItem _item;
j=0;
интервал удаления;
к=0;
DataTable nowTable2 = новый DataTable( "nowCartTable2");
nowTable2=( DataTable )Session["myCartTable"];
для (я=0;
i<=this.ShoppingCartDlt.Items.Count-1;
я++)
{
_item = this.ShoppingCartDlt.Items[i];
TextBox CountText=( TextBox )this.ShoppingCartDlt.Items[i].Cells[4].FindControl( "CountTb" );
//Управление[1];
//_item.FindControl( "CountTb");
CheckBox ProductIDCheck =( CheckBox ) _item.FindControl( "chkProductID" );
nowTable2.Rows[i][1] = Int32.Parse( CountText.Text.ToString() );
nowTable2.Rows[i][4] = Int32.Parse( nowTable2.Rows[i][1].ToString() ) * Double.Parse( nowTable2.Rows[i][3].ToString() );
если( ProductIDCheck.Checked )
{
nowTable2.Rows[i][5] = 1;
// 添加删除标记1 j=j+1;
}
}
string strExpr="IsDeleted>0";
//http://msdn.microsoft.com/library/chs/default.asp?url=/library/CHS/cpref/html/frlrfSystemDataTableClassSelectTopic.asp DataRow[] FoundRows = nowTable2.Select(strExpr);
для (интервал м = 0;
m < FoundRows.Length;
м++)
{
//Console.WriteLine(foundRows[i][0]);
FoundRows[m].Delete();
}
ShoppingCartDlt.DataSource = nowTable2.DefaultView;
ShoppingCartDlt.DataBind( );
Session["myCartTable"] = nowTable2;
Калькулятор( );
}
#region Web 窗体设计器生成的代码 переопределить protected void OnInit( EventArgs e )
{
// // CODEGEN: 该调用是 asp.NET Web 窗体设计器所必需的. // ИнициализироватьКомпонент( );
base.OnInit(е);
}
/// <краткое содержание> /// 设计器支持所需的方法 - 不要使用代码编辑器修改 /// 此方法的内容. /// </summary> Private void InitializeComponent()
{
this.update.Click += новый System.EventHandler( this.update_Click );
this.CheckOut.Click += новый System.EventHandler( this.CheckOut_Click );
this.Load += новый System.EventHandler( this.Page_Load );
}
#конечныйрегион
Private void update_Click(отправитель объекта, System.EventArgs e)
{
Обновлять( );
}
частный void CheckOut_Click(отправитель объекта, System.EventArgs e)
{
Обновлять( );
Response.Redirect("checkout.aspx");
}
}
}
http://www.cnblogs.com/boundless/archive/2007/01/16/621553.html