private void ShopCar(int id,string name,double price,int numble,int tag) //tag等于1为增加商品,0为减
{
System.Data.DataTable dt;
if(HttpContext.Current.Session["shop_car"]==null)
{
dt=new DataTable();
dt.Columns.Add(new DataColumn("编号",typeof(int)));
dt.Columns.Add(new DataColumn("商品名",typeof(string)));
dt.Columns.Add(new DataColumn("价格",typeof(double)));
dt.Columns.Add(new DataColumn("数量",typeof(int)));
dt.Columns.Add(new DataColumn("总计",typeof(double)));
Session["shop_car"]=dt; //缓存数据表,不能缓存视图
}
else
{
dt=(DataTable)Session["shop_car"];
}
DataView dv=dt.DefaultView;
dv.Sort="编号"; //排序
int i=dv.Find(id); //在车中搜索商店id,如果不存在返回-1
if(i==-1) //无此商店
{
if(tag==1) //添加
{
DataRow dr=dt.NewRow();
dr["编号"]=id;
dr["商品名"]=name;
dr["价格"]=price;
dr["数量"]=numble;
dr["总计"]=numble * price;
dt.Rows.Add(dr);
}
else //移除
{
Response.Write("<script language='javascript'>alert('此商品已清空!');</script>");
}
}
else //有此商品
{
if(tag==1) //添加
{
dv[i]["数量"]=(int)dv[i]["数量"]+numble;
dv[i]["总计"]=(double)dv[i]["总计"]+(double)dv[i]["价格"]*numble;
dv.Sort=null;
}
else //移除
{
int j=(int)dv[i]["数量"]-numble;
if(j<=0) dv.Delete(i);
else
{
dv[i]["数量"]=j;
dv[i]["总计"]=(double)dv[i]["总计"]-(double)dv[i]["价格"]*numble;
}
dv.Sort=null;
}
}
}
//然后在其它页面调用session与DataGrid绑定,可能得初始化DataTable