在线购物车实现_SEO咚咚_新浪博客

(利用SESSION或数据库实现购物车的功能和将商品加入到购物车,能修改购物车的数量,能 计算购物车里商品的总价

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using MyBookShop.BLL;
using MyBookShop.Models;

public partial class Cart : System.Web.UI.Page
{
    User user;
    protected void Page_Load(object sender, EventArgs e)
    {
        user = Session["CurrentUser"] as User;       
        if (user == null)
        {
            Response.Write("<script>alert('登陆超时,请重新登陆');document.location='MemberShip/UserLogin.aspx';</script>");
            return;
        }
       
        if (!IsPostBack)
        {
            if (Session["Cart"] != null)
            {
                BindGridView();
            }
        }
    }

    /// <summary>
    /// 结算
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void imgb_Salary_Click(object sender, ImageClickEventArgs e)
    {
        if (Session["Cart"] == null || ((DataTable)Session["Cart"]).Rows.Count==0)
        {
            Response.Write("<script>alert('您的购物车为空,请先将图书放入购物车!');document.location='BookList.aspx';</script>");
            return;
        }
        Order order = new Order();
        order.OrderDate = DateTime.Now;
        if (this.ltrSalary.Text != String.Empty)
        {
            order.TotalPrice = Convert.ToDecimal(this.ltrSalary.Text);
        }
        order.User = user;
        order = OrderManager.AddOrder(order);       
        OrderBook orderbook=new OrderBook();
        Book book = new Book();
        Order orders = new Order();
        foreach (DataRow dr in ((DataTable)Session["Cart"]).Rows)
        {
            book.Id = Convert.ToInt32(dr["BookId"]);
            orders.Id = order.Id;
            orderbook.Book = book;
            orderbook.Order = orders;
            orderbook.Quantity = Convert.ToInt32(dr["Number"]);
            orderbook.UnitPrice = Convert.ToDecimal(dr["UnitPrice"]);

            OrderBookManager.AddOrderBook(orderbook);
        }
        Session.Remove("Cart");
        Response.Write("<script>alert('结算成功,请等待审批订单');window.location='BookList.aspx'</script>");
    }

    /// <summary>
    /// 绑定GridView方法
    /// </summary>
    private void BindGridView()
    {
        DataTable cart = Session["cart"] as DataTable;
        TotalPrice(cart);
        this.gvCart.DataSource=cart;
        this.gvCart.DataBind();
    }

    /// <summary>
    /// 为前台图片找到正确的路径
    /// </summary>
    /// <param name="url"></param>
    /// <returns></returns>
    public string GetUrl(string url)
    {
        return StringHandler.CoverUrl(url);
    }

    /// <summary>
    /// GridView编辑按钮处理事件
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void gvCart_RowEditing(object sender, GridViewEditEventArgs e)
    {
        gvCart.EditIndex=e.NewEditIndex;
        BindGridView();
    }

    /// <summary>
    /// GridView分页处理事件
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void gvCart_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
        gvCart.PageIndex = e.NewPageIndex;
        BindGridView();
    }

    /// <summary>
    /// GridView删除按钮处理事件
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void gvCart_RowDeleting(object sender, GridViewDeleteEventArgs e)
    {
        DataTable cart = Session["cart"] as DataTable;
        cart.Rows[e.RowIndex].Delete();
        Session["cart"] = cart;
        BindGridView();
    }

    /// <summary>
    /// GridView取消按钮处理事件
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void gvCart_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
    {
        gvCart.EditIndex = -1;
        BindGridView();
    }

    /// <summary>
    /// GridView更新按钮处理事件
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void gvCart_RowUpdating(object sender, GridViewUpdateEventArgs e)
    {
        DataTable cart = Session["cart"] as DataTable;
        foreach (DataRow dr in cart.Rows)
        {
            if (dr["BookName"].ToString().Equals((gvCart.Rows[e.RowIndex].FindControl("lblBookName") as Label).Text))
            {
                dr["Number"] = (gvCart.Rows[e.RowIndex].FindControl("txtNumber") as TextBox).Text.Trim();
            }
        }
        
        Session["cart"] = cart;
        gvCart.EditIndex = -1; 
        BindGridView();
    }

    /// <summary>
    /// GridView数据绑定后激发的事件
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void gvCart_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            LinkButton lb= e.Row.FindControl("lnkbtnDelete") as LinkButton;
            lb.Attributes.Add("onclick","return confirm('确定删除吗?')");
        }
    }

    /// <summary>
    /// 计算总价
    /// </summary>
    /// <param name="cart"></param>
    private void TotalPrice(DataTable cart)
    {
        double Total = 0;
        foreach (DataRow dr in cart.Rows)
        {
           
            Total += Convert.ToDouble(dr["UnitPrice"].ToString()) * Convert.ToDouble(dr["Number"].ToString());
            this.ltrSalary.Text = Total.ToString();
        }
    }
    protected void gvCart_SelectedIndexChanged(object sender, EventArgs e)
    {

    }
}

已投稿到:
郑重声明:资讯 【在线购物车实现_SEO咚咚_新浪博客】由 发布,版权归原作者及其所在单位,其原创性以及文中陈述文字和内容未经(企业库qiyeku.com)证实,请读者仅作参考,并请自行核实相关内容。若本文有侵犯到您的版权, 请你提供相关证明及申请并与我们联系(qiyeku # qq.com)或【在线投诉】,我们审核后将会尽快处理。
—— 相关资讯 ——