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

使用cookies实现浏览历史记录功能

1. 首先定义存储cookies的对象:

    public class ResortCookiesData
    {
        private string _Img;
        private string _resortName;
        private int _id;

        public ResortCookiesData(string img, string resortname, int id)
        {
            _Img = img;
            _resortName = resortname;
            _id = id;
        }

        public string Img
        {
            get { return _Img; }
        }

        public string ResortName
        {
            get { return _resortName; }
        }

        public int Id
        {
            get { return _id; }
        }
    }

 

2. 读取cookies存储数据并绑定到数据控件中:

    protected void bindCookies()
    {
        if (Page.Request.Cookies["resortid"] != null)
        {
            HttpCookie _tempCurBuyerList = Page.Request.Cookies["resortid"];
            string[] strArr = _tempCurBuyerList.Value.Split(',');
            ArrayList list = new ArrayList();
            foreach (string s in strArr)
            {
                SendNet.Model.Product m = pm.Product.GetModel(int.Parse(s));
                if (m != null)
                {
                    list.Add(new ResortCookiesData(m.Img, m.ProductName, m.ProductId));
                }
            }
            rpthistory.DataSource = list;
            rpthistory.DataBind();
        }
    }

 

3. 定义存储cookies的方法:

    protected void History_Resorts(string _cookiesName, int objectID)
    {
        if (Page.Request.Cookies[_cookiesName] != null)
        {
            HttpCookie _tempCurBuyerList = Page.Request.Cookies[_cookiesName];
            string _tempstr = _tempCurBuyerList.Value;
            if (_tempstr.IndexOf(",") > 0)
            {
                string[] sArray = _tempstr.Split(',');
                bool hasthis = false;
                foreach (string i in sArray)
                {
                    if (i == objectID.ToString())
                    {
                        hasthis = true;
                        break;
                    }
                    else
                    {
                        hasthis = false;
                    }
                }


                if (!hasthis)//如果没有ID,则加入
                {
                    if (sArray.Length > 6)//6为存储浏览记录数的数量,实际数量为7
                    {//超过限定,去掉最先入队的元素
                        _tempstr = _tempstr.Substring(0, _tempstr.LastIndexOf(","));
                    }
                    //队列
                    _tempstr = objectID.ToString() + "," + _tempstr;
                }
            }
            else
            {
                //_tempstr += "," + objectID.ToString();
                if (_tempstr != objectID.ToString())
                {
                    _tempstr = objectID.ToString() + "," + _tempstr;
                }
            }
            _tempCurBuyerList.Value = _tempstr;
            _tempCurBuyerList.Expires = DateTime.Now.AddDays(7);
            Page.Response.Cookies.Add(_tempCurBuyerList);
        }
        else
        {
            HttpCookie _addToCookies = new HttpCookie(_cookiesName);
            _addToCookies.Value = objectID.ToString();
            _addToCookies.Expires = DateTime.Now.AddDays(7);
            Page.Response.Cookies.Add(_addToCookies);
        }
    }

 

4. 在用户浏览某产品时记录到cookies中:

History_Resorts("resortid", m.ProductId);

 

(此功能到此完成)

 

 

 

转载于:https://www.cnblogs.com/jasonoiu/archive/2010/10/12/1848933.html

相关文章:

  • 字符串类型内建方法归纳总结
  • 【随笔】也随便说说隐私的事情
  • Android MVC模式
  • 诗歌rails 之bundle
  • 第十七、十八周微职位:tomcat,MogileFS
  • JSON 入门
  • 解密回声消除技术之一(理论篇)
  • 流水号连续生成的问题解决方法
  • PyCharm常用设置
  • 不使用中间变量交换两个数
  • 阿里巴巴集团CTO张建锋兼任阿里云CTO
  • 转:Discuz!NT跨站缓存同步
  • 自行车V刹和碟刹的对比结果分析
  • c++强制类型转换:dynamic_cast、const_cast 、static_cast、reinterpret_cast
  • 网络对抗技术实验二网络嗅探与欺骗
  • JavaScript-如何实现克隆(clone)函数
  • canvas 五子棋游戏
  • Github访问慢解决办法
  • interface和setter,getter
  • iOS编译提示和导航提示
  • JAVA_NIO系列——Channel和Buffer详解
  • jquery cookie
  • Laravel深入学习6 - 应用体系结构:解耦事件处理器
  • mysql 5.6 原生Online DDL解析
  • Python 基础起步 (十) 什么叫函数?
  • Web设计流程优化:网页效果图设计新思路
  • 案例分享〡三拾众筹持续交付开发流程支撑创新业务
  • 百度地图API标注+时间轴组件
  • 订阅Forge Viewer所有的事件
  • 飞驰在Mesos的涡轮引擎上
  • 看图轻松理解数据结构与算法系列(基于数组的栈)
  • 巧用 TypeScript (一)
  • 探索 JS 中的模块化
  • 问题之ssh中Host key verification failed的解决
  • 一个6年java程序员的工作感悟,写给还在迷茫的你
  • 移动端高清、多屏适配方案
  • ​MySQL主从复制一致性检测
  • !!java web学习笔记(一到五)
  • # Apache SeaTunnel 究竟是什么?
  • # 达梦数据库知识点
  • # 透过事物看本质的能力怎么培养?
  • #define,static,const,三种常量的区别
  • (0)Nginx 功能特性
  • (1)(1.11) SiK Radio v2(一)
  • (C++)八皇后问题
  • (solr系列:一)使用tomcat部署solr服务
  • (保姆级教程)Mysql中索引、触发器、存储过程、存储函数的概念、作用,以及如何使用索引、存储过程,代码操作演示
  • (二)Pytorch快速搭建神经网络模型实现气温预测回归(代码+详细注解)
  • (附源码)node.js知识分享网站 毕业设计 202038
  • (附源码)ssm基于微信小程序的疫苗管理系统 毕业设计 092354
  • (数据结构)顺序表的定义
  • .\OBJ\test1.axf: Error: L6230W: Ignoring --entry command. Cannot find argumen 'Reset_Handler'
  • .net Application的目录
  • .NET Core 实现 Redis 批量查询指定格式的Key
  • .net core使用RPC方式进行高效的HTTP服务访问