购物车的实现形式多样,在这里,我用到了虚拟表和sesson方法存储。
首先创建一个商品的表,GridView控件绑定数据源。在GridView中添加一个列,控件为
buttonfield.在GridView的RowCommand事件写代码:
DataTable cart = new DataTable();//新建虚拟表
if (Session["shoppingcart"] == null)
{
cart.Columns.Add("pname", typeof(string));//编辑表的列的属性
cart.Columns.Add("pid", typeof(string));
cart.Columns.Add("price", typeof(string));
Session["shoppingcart"] = cart;
}
cart = (DataTable)Session["shoppingcart"];
int n = Convert.ToInt32(e.CommandArgument);
string p1 = GridView1.Rows[n].Cells[0].Text;//获得商品的数据
string p2 = GridView1.Rows[n].Cells[1].Text;
string p3 = GridView1.Rows[n].Cells[2].Text;
DataRow rr = cart.NewRow();
rr["pname"] = p1;
rr["pid"] = p2;
rr["price"] = p3;
cart.Rows.Add(rr);//增加一条记录
Session["shoppingcart"] = cart;
购物车页面:添加一个未绑定数据源的GridView控件:一个显示总额的lable的控件。
在页面加载事件中写代码:
if (!this.IsPostBack){
GridView1.DataSource = Session["shoppingcart"];
GridView1.DataBind();
double sum = 0.0;
for (int i = 0; i < GridView1.Rows.Count; i++)
{
sum = sum + (double.Parse(GridView1.Rows .Cells[2].Text));
}
Label2.Text ="总计:"+ sum.ToString()+"元";
}
这样显示GridView控件了虚拟表的数据并且把总共的金额进行了加总。
增添两个按钮控件:清空 提交订单
清空按钮代码:
Session.Remove("shoppingcart");
GridView1.DataBind();
Label2.Text = "总计:0元";
提交订单:这里是提交给数据库,建一个订单表。
事件代码:
string name = Session["sa"].ToString();//获得提交用户的用户名
double sum = 0.0;
string p1="";
string p2="";
for (int i = 0; i < GridView1.Rows.Count; i++)
{
sum = sum + (double.Parse(GridView1.Rows .Cells[2].Text));
p1 =p1+"、" + GridView1.Rows .Cells[0].Text;
p2 =p2 +"、"+ GridView1.Rows .Cells[1].Text;
}
DataClasses3DataContext w = new DataClasses3DataContext();
dingdan dan = new dingdan();
dan.username = name;
dan.dingdan1= p1+p2;
dan.price = sum.ToString();
dan.addtime = Convert.ToDateTime(DateTime.Now);
w.dingdans.InsertOnSubmit(dan);
w.SubmitChanges();
效果图:
点击清空:
提交订单后,订单查看:
首先创建一个商品的表,GridView控件绑定数据源。在GridView中添加一个列,控件为
buttonfield.在GridView的RowCommand事件写代码:
DataTable cart = new DataTable();//新建虚拟表
if (Session["shoppingcart"] == null)
{
cart.Columns.Add("pname", typeof(string));//编辑表的列的属性
cart.Columns.Add("pid", typeof(string));
cart.Columns.Add("price", typeof(string));
Session["shoppingcart"] = cart;
}
cart = (DataTable)Session["shoppingcart"];
int n = Convert.ToInt32(e.CommandArgument);
string p1 = GridView1.Rows[n].Cells[0].Text;//获得商品的数据
string p2 = GridView1.Rows[n].Cells[1].Text;
string p3 = GridView1.Rows[n].Cells[2].Text;
DataRow rr = cart.NewRow();
rr["pname"] = p1;
rr["pid"] = p2;
rr["price"] = p3;
cart.Rows.Add(rr);//增加一条记录
Session["shoppingcart"] = cart;
购物车页面:添加一个未绑定数据源的GridView控件:一个显示总额的lable的控件。
在页面加载事件中写代码:
if (!this.IsPostBack){
GridView1.DataSource = Session["shoppingcart"];
GridView1.DataBind();
double sum = 0.0;
for (int i = 0; i < GridView1.Rows.Count; i++)
{
sum = sum + (double.Parse(GridView1.Rows
}
Label2.Text ="总计:"+ sum.ToString()+"元";
}
这样显示GridView控件了虚拟表的数据并且把总共的金额进行了加总。
增添两个按钮控件:清空 提交订单
清空按钮代码:
Session.Remove("shoppingcart");
GridView1.DataBind();
Label2.Text = "总计:0元";
提交订单:这里是提交给数据库,建一个订单表。
事件代码:
string name = Session["sa"].ToString();//获得提交用户的用户名
double sum = 0.0;
string p1="";
string p2="";
for (int i = 0; i < GridView1.Rows.Count; i++)
{
sum = sum + (double.Parse(GridView1.Rows
p1 =p1+"、" + GridView1.Rows
p2 =p2 +"、"+ GridView1.Rows
}
DataClasses3DataContext w = new DataClasses3DataContext();
dingdan dan = new dingdan();
dan.username = name;
dan.dingdan1= p1+p2;
dan.price = sum.ToString();
dan.addtime = Convert.ToDateTime(DateTime.Now);
w.dingdans.InsertOnSubmit(dan);
w.SubmitChanges();
效果图:
点击清空:
提交订单后,订单查看: