当前位置: 首页 > article >正文

一个简单ASP.NET购物车设计

思路:

  1. 创建一个多选列表

  2. 在cs文件里初始化购物车会话变量,同,创建一个新的 List<string> 并将其赋值给会话状态中的 "Cart" 键–(利用Session)

    Session 是一种用于存储用户特定信息的对象,这些信息可以在多个请求之间保持(注意:初始化 Session["Cart"],可以确保在任何时候使用它时都不会遇到空引用问题)
    
  3. 检查并处理会话状态中购物车为空的情况

  4. 添加商品按键(注:当再次点击时,重复的商品将不再添加)

  5. 清空购物车

  6. 若想拓展(可以使用 CheckBoxListRepeater 控件来显示带有图片的商品列表)

Goods1.aspx代码

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Goods1.aspx.cs" Inherits="Goods1" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
        <div>
            <asp:CheckBoxList ID="cblGood" runat="server">
                <asp:ListItem>苹果</asp:ListItem>
                <asp:ListItem></asp:ListItem>
                <asp:ListItem>香蕉</asp:ListItem>
                <asp:ListItem>猕猴桃</asp:ListItem>
                <asp:ListItem>黄瓜</asp:ListItem>
                <asp:ListItem>白菜</asp:ListItem>
            </asp:CheckBoxList>
            <asp:Button ID="btnAdd" runat="server" Text="加入购物车" OnClick="btnAdd_Click"/>
            <asp:Button ID="btnView" runat="server" Text="查看购物车" OnClick="btnView_Click" />
            <asp:Button ID="btnClear" runat="server" Text="清空购物车"  OnClick="btnClear_Click"/><br/>
            <asp:Label ID="lblShow01" runat="server" ></asp:Label>
        </div>
    </form>
</body>
</html>

Goods1.aspx.cs代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class Goods1 : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            // 初始化购物车会话变量
            if (Session["Cart"] == null)
            {
                Session["Cart"] = new List<string>();
            }
        }
    }
    

    

    protected void btnAdd_Click(object sender, EventArgs e)
    {
        List<string> cart = (List<string>)Session["Cart"];
        foreach (ListItem item in cblGood.Items)
        {
            if (item.Selected && !cart.Contains(item.Value))
            {
                cart.Add(item.Value);
            }
        }
        Session["Cart"] = cart;
        lblShow01.Text = "已加入购物车";
    }

    protected void btnView_Click(object sender, EventArgs e)
    {
        List<string> cart = (List<string>)Session["Cart"];
        if (cart.Count > 0)
        {
            lblShow01.Text = "购物车中的商品:" + string.Join(", ", cart);
        }
        else
        {
            lblShow01.Text = "购物车为空";
        }
    }



    protected void btnClear_Click(object sender, EventArgs e)
    {
        Session["Cart"] = new List<string>();
    }
}

http://www.kler.cn/a/386531.html

相关文章:

  • 十九:Spring Boot 依赖(4)-- spring-boot-starter-security依赖详解
  • DHCP与DNS安全管理
  • C++笔记---异常
  • Linux学习笔记之组管理和权限管理
  • Android中Activity启动的模式
  • 物联网技术及其在智慧城市中的应用
  • 从0开始linux(24)——文件(5)磁盘文件系统
  • SpringBoot3中swagger无法使用
  • C#-密封类、密封方法
  • acmessl.cn提供接口API方式申请免费ssl证书
  • 第 2 章 - Go语言环境搭建
  • C++builder中的人工智能(16):神经网络中的SoftPlus激活函数
  • 网络安全应急响应(归纳)
  • AscendC从入门到精通系列(一)初步感知AscendC
  • 「Mac玩转仓颉内测版3」入门篇3 - Cangjie的基本语法与结构
  • rediss数据结构及其底层实现
  • C++代码优化(三): 决不要重新定义继承而来的缺省参数值
  • Android中桌面小部件的开发流程及常见问题和解决方案
  • Chrome与傲游在隐私保护上的表现
  • linux centos新机器容器中创建虚拟环境
  • jmeter常用配置元件介绍总结之安装插件
  • 重塑商业未来:探索SAAS服务的无限可能
  • 基于STM32的自动化植物浇灌系统教学
  • 谷粒商城-高级篇-认证服务
  • 云计算在esxi 主机上创建 4g磁盘,同时在此磁盘上部署linux
  • .NET使用TDengine时序数据库和SqlSugar操作TDengine