简单datatable做购物车

 protected void cart()
    {
        DataTable dt = new DataTable();//创建表
        //为表创建列
        dt.Columns.Add("cardId", typeof(int));
        dt.Columns.Add("cardName", typeof(string));
        dt.Columns.Add("cardPrice", typeof(decimal));
        dt.Columns.Add("cardNum", typeof(int));
        //将列添加行中
        DataRow dr = dt.NewRow();
        dr["cardId"] = int.Parse(Request.QueryString["cardId"].ToString());
        CardType cardType = CardTypeManager.GetCardTypeById(int.Parse(Request.QueryString["cardId"]));
        dr["cardName"] = cardType.CardName;
        dr["cardNum"] = 1;
        dt.Rows.Add(dr);
        Session["cart"] = dt;

    }


   //删除前操作
    protected void gvCart_RowDeleting(object sender, GridViewDeleteEventArgs e)
    {
        //删除事件处理
        DataTable tab = Session["cart"] as DataTable;
        //去掉tab中的一行
        tab.Rows.RemoveAt(e.RowIndex);
        //重新指定数据
        Session["cart"] = tab;
        //重新绑定数据
        dataBindCard();
    }
    //更新之前的操作
    protected void gvCart_RowUpdating(object sender, GridViewUpdateEventArgs e)
    {
        //更新数据,对session中数据进行修改
        DataTable tab = Session["cart"] as DataTable;
        string input = "";
        try
        {
            //获取文本框的值
            input = (gvCart.Rows[e.RowIndex].FindControl("txtUPdate") as TextBox).Text.ToString();
            HiddenField hf = gvCart.Rows[e.RowIndex].FindControl("HiddenField1") as HiddenField;
            int count = CardManager.GetCardCount(int.Parse(hf.Value));
            if (int.Parse(input) > count)
            {
                gvCart.EditIndex = -1;
                dataBindCard();
                this.Page.ClientScript.RegisterStartupScript(this.GetType(), "", "<script>alert('库存不足只有" + count + "张')</script>");
            }
            else
            {
                tab.Rows[e.RowIndex]["cardNum"] = int.Parse(input);
                Session["cart"] = tab;
                //退出编辑模式
                gvCart.EditIndex = -1;
                //重新绑定数据
                dataBindCard();
            }
        }
        catch (Exception)
        {
            Page.ClientScript.RegisterStartupScript(this.GetType(), "", "<script>alert('数量只能为数字')</script>");
            return;
        }
    }
    protected void gvCart_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
    {
        //退出编辑模式
        gvCart.EditIndex = -1;
        //重新绑定数据
        dataBindCard();
    }
    protected void gvCart_RowEditing(object sender, GridViewEditEventArgs e)
    {
        gvCart.EditIndex = e.NewEditIndex;
        //重新绑定数据
        dataBindCard();
    }


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值