private void BindCartList() { if (Session[CartTableName] == null) { // 如果 Session 变量不存在,创建存储数据的表结构 ShoppingCartDataTable = new DataTable(); ShoppingCartDataTable.Columns.Add(new DataColumn("ProductID", typeof(int))); ShoppingCartDataTable.Columns.Add(new DataColumn("ProductName", typeof(string))); ShoppingCartDataTable.Columns.Add(new DataColumn("UnitPrice", typeof(decimal))); ShoppingCartDataTable.Columns.Add(new DataColumn("Quantity", typeof(int))); ShoppingCartDataTable.Columns.Add(new DataColumn("ItemTotal", typeof(decimal))); Session[CartTableName] = ShoppingCartDataTable; } else { // 如果 Session 存在,则直接读取 ShoppingCartDataTable = (DataTable)Session[CartTableName]; } // 如果用户传递的参数 ProductID 不为 null,则表示选中一件商品即将要添加进购物车 if (Request.QueryString["ProductID"] != null) { string ProductID = Request.QueryString["ProductID"]; // 先判断购物车中是否已经存在该商品 Boolean IsExist = false; foreach (DataRow dr in ShoppingCartDataTable.Rows) { if (dr["ProductID"].ToString() == ProductID) { IsExist = true; break; } } if (IsExist) { // 如果购物车中存在该商品,则提示客户:该商品不会被重复添加到购物车 ScriptManager.RegisterStartupScript(this, typeof(Page), "alertExist", string.Format("alert('您选择的商品(编号:{0})已存在于购物车中,您可以在购物车中更改您所需要购买的商品数量。')", ProductID), true); } else // 如果购物车中不存在该商品,则添加到购物车 { //DataTable NewShoppingCartDataTable = DataBaseClass.GetDataTable(string.Format("Select * From PRODUCT_INFO Where ProductID='{0}'", ProductID.ToString())); DataTable NewShoppingCartDataTable = Product.GetProduct(ProductID); decimal UnitPrice = Convert.ToDecimal(NewShoppingCartDataTable.Rows[0]["UnitPrice"]); int Quantity = 1; DataRow NewShoppingCartDataRow = ShoppingCartDataTable.NewRow(); NewShoppingCartDataRow["ProductID"] = Convert.ToInt32(ProductID.ToString()); NewShoppingCartDataRow["ProductName"] = NewShoppingCartDataTable.Rows[0]["ProductName"].ToString(); NewShoppingCartDataRow["UnitPrice"] = UnitPrice; NewShoppingCartDataRow["Quantity"] = Quantity; NewShoppingCartDataRow["ItemTotal"] = UnitPrice * Quantity; ShoppingCartDataTable.Rows.Add(NewShoppingCartDataRow); } } // 以 CartDataTable 作为 CartGridView 控件的数据源 ShoppingCartGridView.DataSource = ShoppingCartDataTable; // 绑定 ShoppingCartGridView.DataBind(); Session[CartTableName] = ShoppingCartDataTable; }
private void BindData() { ShoppingCartGridView.DataSource = Session[CartTableName]; ShoppingCartGridView.DataBind(); }