Òå1¸öCart×飬°üº¬ProId¡¢ProName¡¢ListPrice¡¢QtyºÍTotalPrice¡£¶ø¹ºÎï³µÐèÒª´æ´¢¡±true¡±¡£
²Ù×÷ʱ£¬´ò¿ªÍøÕ¾¸ùÎļþ¼ÐϵÄweb.config£¬ÔÚ
£¨5£©Éè¼ÆShopCart.aspx
Èçͼ6-13Ëùʾ£¬ÏòShopCart.aspxÒ³ÃæÊäÈë¡°ÎÂܰÌáʾ£º¡¡..¡±¡¢¡°×ܼۣº¡±µÈÐÅÏ¢£¬Ìí¼Ó1¸öGridView¿Ø¼þ¡¢2¸öLabel¿Ø¼þºÍ5¸öButton¿Ø¼þ¡£Êʵ±µ÷Õû¸÷¿Ø¼þµÄ´óСºÍλÖ᣷ֱðÉèÖø÷¿Ø¼þµÄÊôÐÔIDֵΪ£ºgvCart¡¢lblError¡¢lblTotalPrice¡¢btnDelete¡¢btnClear¡¢btnComputeAgain¡¢btnSettleºÍbtnContinue¡£
ͼ6-13 Éè¼Æ½çÃæ£¨3£©
¿Ø¼þgvCartµÄÊôÐÔColumnsÖµÉèÖÃÈçͼ6-14Ëùʾ£¬Ìí¼Ó1¸öTemplateField×ֶΡ°¸´Ñ¡¿òÁС±¡¢3¸öBoundField×ֶκÍ1¸öTemplateField×ֶΡ°¹ºÂòÊýÁ¿¡±¡£
ͼ6-14 ÊôÐÔColumnsÉèÖÃ
TemplateField×ֶΡ°¸´Ñ¡¿òÁС±µÄ±à¼½çÃæÈçͼ6-15Ëùʾ£¬ÏòItemTemplateÌí¼Ó1¸öCheckBox¿Ø¼þ£¬ÉèÖÃÊôÐÔIDֵΪchkProduct¡£
ͼ6-15 Éè¼Æ½çÃæ£¨4£©
3¸öBoundField×ֶθ÷ÊôÐÔÉèÖÃÈç±í6-3Ëùʾ¡£
±í6-3BoundField×ֶθ÷ÊôÐÔÉèÖñí
ÁÐÃû ÉÌÆ·ID ÉÌÆ·Ãû³Æ ÉÌÆ·¼Û¸ñ ÊôÐÔÃû DataField HeaderText DataField HeaderText DataField HeaderText ÊôÐÔÖµ ProId ÉÌÆ·ID ProName ÉÌÆ·Ãû³Æ ListPrice ÉÌÆ·¼Û¸ñ ˵Ã÷ °ó¶¨Êý¾ÝÁÐProId ±íÍ·µÄÁÐÃû³Æ °ó¶¨Êý¾ÝÁÐProName ±íÍ·µÄÁÐÃû³Æ °ó¶¨Êý¾ÝÁÐListPrice ±íÍ·µÄÁÐÃû³Æ ±à¼TemplateField×ֶΡ°¹ºÂòÊýÁ¿¡±£¬ÏòItemTemplateÌí¼Ó1¸öTextBox¿Ø¼þ£¬ÉèÖÃÊôÐÔIDֵΪtxtQty£¬°ó¶¨ÊôÐÔTextµÄ´úÂë±í´ïʽΪBind£¨¡±Qty¡±£©¡£
£¨6£©±àдShopCart.aspxʼþ´úÂë
Ò³ÃæÊ×´ÎÔØÈëʱ£¬½«ÅжϴÓProductShow.aspx´«µÝ¹ýÀ´µÄProductIdÊÇ·ñΪ¿ÕÖµ£¬Èô·Ç¿Õ£¬Ôò»ñÈ¡ProductIdÖµ£¬ÔÙ½«ProductIdÖµ¶ÔÓ¦µÄÉÌÆ·ÐÅÏ¢Ìí¼Óµ½¹ºÎï³µ¡£È»ºó£¬ÏÔʾ¹ºÎï³µÖаüº¬µÄÉÌÆ·Êý¾Ý¡£ÏàÓ¦µÄʼþ´úÂëÈçÏ£º
protected void Page_Load(object sender, EventArgs e) {
if (!IsPostBack) {
if (Request.QueryString[\] != null) {
int id = int.Parse(Request.QueryString[\]);
AddProduct(id); //µ÷ÓÃ×Ô¶¨Òå·½·¨AddProduct()Ïò¹ºÎï³µÌí¼ÓÖ¸¶¨ÉÌÆ·±àºÅµÄÉÌÆ· }
Bind(); //µ÷ÓÃ×Ô¶¨Òå·½·¨Bind()ÏÔʾ¹ºÎï³µÖеÄÉÌÆ· }
}
×Ô¶¨Òå·½·¨AddProduct£¨£©µÄ´úÂëÈçÏ£º protected void AddProduct(int id) {
//isExit±íʾÉÌÆ·ÊÇ·ñÒÑÔÚ¹ºÎï³µÖУ¬Öµ1±íʾ¡°ÊÇ¡±£¬Öµ0±íʾ·ñ int isExit = 0; for (int {
//Èç¹ûͬÀàÉÌÆ·ÒѾ´æÔÚ¹ºÎï³µÖУ¬½«¹ºÂòÁ¿¼Ó1 if (id == (int {
int s = (int s++;
Profile.Save(); isExit = 1; } }
if (isExit == 0) {
//Èç¹û¹ºÎï³µÖÐÎÞ´ËÀàÉÌÆ·£¬Ìí¼ÓÒ»¸öвúÆ·µ½Profile.Cart¸÷ÊôÐÔÖÐ MyPetShopDataContext db = new MyPetShopDataContext(); var products = from p in db.Product where p.ProductId == id select p;
foreach (var product in products) { }
//±£´æµ½ASPNETDB.mdfÊý¾Ý¿â Profile.Save(); }
}
×Ô¶¨Òå·½·¨Bind£¨£©½«Profile.CartÖеĹºÎï¼Ç¼´æ´¢µ½Ò»¸öÁÙʱ±ídtÖУ¬ÔÙ½«dt×÷ΪÊý¾ÝÔ´£¬°ó¶¨µ½gvCart£¬´úÂëÈçÏ£º ///
/// ½«Profile.CartÖеĹºÎï¼Ç¼·ÅÔÚÒ»¸öÁÙʱ±ídtÖÐ,ÔÙ½«dt×÷ΪÊý¾ÝÔ´£¬°ó¶¨µ½gvCart
/// protected void Bind() {
//½«Profile.CartÖеĹºÎï¼Ç¼´æ´¢µ½Ò»¸öÁÙʱ±ídtÖУ¬ÔÙ½«dt×÷ΪÊý¾ÝÔ´£¬°ó¶¨µ½gvCart
//µ÷ÓÃ×Ô¶¨Òå·½·¨TotalPrice()¼ÆË㹺Îï³µÖÐÉÌÆ·µÄ×Ü¼Û DataTable dt = new DataTable(); \); \); \); \);
for (int {
DataRow row = dt.NewRow(); }
gvCart.DataSource = dt; gvCart.DataBind(); }
×Ô¶¨Òå·½·¨TotalPrice£¨£©µÄ´úÂëÈçÏ£º ///
/// ¼ÆË㹺Îï³µÖйºÎï×ܽð¶î ///
///
//¼ÆË㹺Îï³µÖйºÎï×ܽð¶î£¬²¢·µ»ØÖµ decimal sum = 0; for (int {
int qty = (int
decimal listPrice = (decimal sum += qty * listPrice; }
return sum; }
°´Å¥btnDelete±»µ¥»÷ʱִÐеÄʼþ´úÂëÈçÏ£º ///
/// Ñ»·ÀûÓÃFindControl()ÕÒµ½CheckBox¿Ø¼þchkProduct£¬È»ºóÅÐ¶ÏÆäCheckedÖµ£¬ÈôΪTrue£¬Ôòµ÷ÓÃ×Ô¶¨Òå·½·¨DeleteProduct()Ö´ÐÐɾ³ý²Ù×÷ ///
///
protected void btnDelete_Click(object sender, EventArgs e) {
int productId = 0; for (int {
CheckBox chkProduct = new CheckBox();
chkProduct = (CheckBox)gvCart.Rows[i].FindControl(\); if (chkProduct != null) {
if (chkProduct.Checked) {
productId = int.Parse(gvCart.Rows[i].Cells[1].Text); DeleteProduct(productId); //µ÷ÓÃ×Ô¶¨Òå·½·¨DeleteProduct()ɾ³ý¹ºÎï³µÖÐÖ¸¶¨ÉÌÆ·±àºÅµÄÉÌÆ· } } }
Bind(); //µ÷ÓÃ×Ô¶¨Òå·½·¨Bind()ÏÔʾ¹ºÎï³µÖÐÉÌÆ· }
///
×Ô¶¨Òå·½·¨DeleteProduct£¨£©µÄ´úÂëÈçÏ£º
/// ÔÚ¹ºÎï³µProfile.CartÖÐɾ³ýÖ¸¶¨ÉÌÆ·±àºÅµÄ¹ºÎï¼Ç¼ ///
/// protected void DeleteProduct(int id) {
//Ñ»·²éÕÒÓëidÏàÆ¥ÅäÉÌÆ·¶ÔÓ¦µÄÊý×éÁбíϱê int j = 0; for (int {
if (id == (int {
j = i; break; } }
//ÒÆ³ýÖ¸¶¨Ï±êµÄÊý×éÔªËØ //±£´æµ½ASPNETDB.mdfÊý¾Ý¿â Profile.Save();
}
°´Å¥btnClear±»µ¥»÷ʱִÐеÄʼþ´úÂëÈçÏ£º
protected void btnClear_Click(object sender, EventArgs e) {
//µ÷Óø÷Êý×éÁбí¶ÔÏóµÄClear()·½·¨Çå³ýÊý×éÁбíÄÚÈÝ