ShoppingCart.aspx.cs
上传用户:xiecaij
上传日期:2015-02-08
资源大小:2016k
文件大小:5k
源码类别:

百货/超市行业

开发平台:

ASP/ASPX

  1. using System;
  2. using System.Collections;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Web;
  7. using System.Web.SessionState;
  8. using System.Web.UI;
  9. using System.Web.UI.WebControls;
  10. using System.Web.UI.HtmlControls;
  11. namespace eshop
  12. {
  13. /// <summary>
  14. /// ShoppingCart 的摘要说明。
  15. /// </summary>
  16. public class ShoppingCart : System.Web.UI.Page
  17. {
  18. protected System.Web.UI.WebControls.Label MyError;
  19. protected System.Web.UI.WebControls.DataGrid MyList;
  20. protected System.Web.UI.WebControls.Label lblTotal;
  21. protected System.Web.UI.WebControls.Button UpdateBtn;
  22. protected System.Web.UI.WebControls.Button CheckoutBtn;
  23. protected System.Web.UI.WebControls.Panel DetailsPanel;
  24. protected System.Web.UI.HtmlControls.HtmlGenericControl LogOutArea;
  25. protected System.Web.UI.HtmlControls.HtmlGenericControl LogInArea;
  26. protected System.Web.UI.HtmlControls.HtmlForm Form1;
  27. private void Page_Load(object sender, System.EventArgs e)
  28. {
  29. if (!Page.IsPostBack)
  30. {
  31. ShowShoppingCartList();
  32. ShowMenu();
  33. }
  34. }
  35. void ShowMenu()
  36. {
  37. if (Request.IsAuthenticated == true)
  38. {
  39. LogOutArea.Visible = false;
  40. LogInArea.Visible = true;
  41. }
  42. else
  43. {
  44. LogOutArea.Visible = true;
  45. LogInArea.Visible = false;
  46. }
  47. }
  48. //********************************************************
  49. //
  50. //ShowShoppingCartList()用来动态绑定用
  51. //户的购物车信息到DataGrid控件MyList
  52. //
  53. //********************************************************
  54. void ShowShoppingCartList() 
  55. {
  56. BLL.ShoppingCart cart = new BLL.ShoppingCart();
  57. // 得到用户的购物车ID
  58. String cartID = cart.GetShoppingCartId();
  59. // 如果购物车内没有商品,DataGrid隐藏
  60. if (cart.GetItemCount(cartID) == 0) 
  61. {
  62. DetailsPanel.Visible = false;
  63. MyError.Text = "购物车内没有商品。";
  64. }
  65. else 
  66. {
  67. // 绑定购物车信息到DataGrid
  68. MyList.DataSource = cart.GetItems(cartID);
  69. MyList.DataBind();
  70. //显示总金额
  71. lblTotal.Text = String.Format( "{0:c}", cart.GetTotal(cartID));
  72. }
  73. }
  74. //*******************************************************
  75. //
  76. // UpdateShoppingCartDatabase方法根据客户端输入的更改信息
  77. // 提交数据库,更改购物车信息
  78. //
  79. //*******************************************************
  80. void UpdateShoppingCartDatabase() 
  81. {
  82. BLL.ShoppingCart cart = new BLL.ShoppingCart();
  83. // 获得用户的cartID
  84. String cartID = cart.GetShoppingCartId();
  85. // 遍历DataGrid的每一行
  86. for (int i=0; i < MyList.Items.Count; i++) 
  87. {
  88. // 找到某行的数量信息和删除信息。
  89. TextBox quantityTxt = (TextBox) MyList.Items[i].FindControl("Quantity");
  90. CheckBox remove = (CheckBox) MyList.Items[i].FindControl("Remove");
  91. // 出错处理。防止用户的非法输入,如quanlity为负数等
  92. int quantity;
  93. try 
  94. {
  95. quantity = Int32.Parse(quantityTxt.Text);
  96. // 如果数量被修改或者Remove复选框被选中
  97. if (quantity != Convert.ToInt32(MyList.DataKeys[i]) || remove.Checked == true) 
  98. {
  99. Label lblBookID = (Label) MyList.Items[i].FindControl("bookID");
  100. //数量为0或用户选择删除
  101. if (quantity == 0 || remove.Checked == true) 
  102. {
  103. cart.RemoveItem(cartID, Int32.Parse(lblBookID.Text));
  104. }
  105. else 
  106. {
  107. cart.UpdateItem(cartID, Int32.Parse(lblBookID.Text),quantity);
  108. }
  109. }
  110. }
  111. catch 
  112. {
  113. MyError.Text = "对不起,您的输入信息有误!";
  114. }
  115. }
  116. }
  117. #region Web 窗体设计器生成的代码
  118. override protected void OnInit(EventArgs e)
  119. {
  120. //
  121. // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
  122. //
  123. InitializeComponent();
  124. base.OnInit(e);
  125. }
  126. /// <summary>
  127. /// 设计器支持所需的方法 - 不要使用代码编辑器修改
  128. /// 此方法的内容。
  129. /// </summary>
  130. private void InitializeComponent()
  131. {    
  132. this.UpdateBtn.Click += new System.EventHandler(this.UpdateBtn_Click);
  133. this.CheckoutBtn.Click += new System.EventHandler(this.CheckoutBtn_Click);
  134. this.Load += new System.EventHandler(this.Page_Load);
  135. }
  136. #endregion
  137. private void UpdateBtn_Click(object sender, System.EventArgs e)
  138. {
  139. //更新购物车记录,并重新显示记录
  140. UpdateShoppingCartDatabase();
  141. ShowShoppingCartList();
  142. }
  143. private void CheckoutBtn_Click(object sender, System.EventArgs e)
  144. {
  145. //更新购物车记录
  146. UpdateShoppingCartDatabase();
  147. //如果购物车不为空,跳转到CheckOut页面
  148. //否则,给出错误提示信息
  149. BLL.ShoppingCart cart = new BLL.ShoppingCart();
  150. //获得购物车ID
  151. string cartID = cart.GetShoppingCartId();
  152. //检查购物记录是否为0
  153. if (cart.GetItemCount(cartID) != 0)
  154. {
  155. Response.Redirect("CheckOut.aspx");
  156. }
  157. else
  158. {
  159. MyError.Text = "购物车为空,不能提交!";
  160. }
  161. }
  162. }
  163. }