コード例 #1
0
    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;
    }
コード例 #2
0
 private void BindData()
 {
     ShoppingCartGridView.DataSource = Session[CartTableName];
     ShoppingCartGridView.DataBind();
 }