zoukankan      html  css  js  c++  java
  • 使用cookies实现浏览历史记录功能

    1.创建历史记录的实体类

     public class LastProducts
        {
            private int _productid;
            private int _categoryid;
            private string _imgsrc;
            private string _productname;

            public LastProducts(int id,int typeid,string imgsrc,string restorename)
            {
                _productid = id;
                _categoryid = typeid;
                _imgsrc = imgsrc;
                _productname = restorename;
            }

            public int ProductId
            {
                get { return _productid; }
            }

            public int CategoryId
            {
                get { return _categoryid; }
            }

            public string ImgSrc
            {
                get { return _imgsrc; }
            }

            public string ProductName
            {
                get { return _productname; }
            }
        }

     2.定义存储cookies的方法

    public void HistoryRestore(string cookieName,int objectID)
            {
                HttpRequest Request = HttpContext.Current.Request;
                HttpResponse Response = HttpContext.Current.Response;

                if (Request.Cookies[cookieName] != null)
                {
                    HttpCookie tempCurBuyerList = Request.Cookies[cookieName];
                    string tempstr = tempCurBuyerList.Value;
                    if (tempstr.IndexOf(",") > 0)
                    {
                        string[] sArray = tempstr.Split(',');
                        bool hasthis = false;

                        foreach (string s in sArray)
                        {
                            if (s == objectID.ToString())
                            {
                                hasthis = true;
                                break;
                            }
                            else
                            {
                                hasthis = false;
                            }
                        }

                        if (!hasthis)   //如果没有ID,则加入
                        {
                            if (sArray.Length > 3) //3为存储浏览记录数的数量,实际数量为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(1);
                    Response.Cookies.Add(tempCurBuyerList);
                    //或者 Response.Cookies[cookieName].Value = tempstr;
                }
                else
                {
                    HttpCookie addToCookies = new HttpCookie(cookieName);
                    addToCookies.Value = objectID.ToString();
                    addToCookies.Expires = DateTime.Now.AddDays(1);
                    Response.Cookies.Add(addToCookies);
                }
            }

    3.读取cookies存储数据

    public List<LastProducts> GetLastProducts()
            {
                HttpRequest Request = HttpContext.Current.Request;

                List<LastProducts> list = null;

                if (Request.Cookies["restoreid"] != null)
                {
                    HttpCookie tempCurBuyerList = Request.Cookies["restoreid"];

                    string[] strArr = tempCurBuyerList.Value.Split(',');
                    list = new List<LastProducts>();

                    foreach (string s in strArr)
                    {
                        ShopProduct model = dal.GetProById(int.Parse(s)); //商品的实体类
                        if (model != null)
                        {
                            list.Add(new Model.Shop.LastProducts(model.ProductID, model.CategoryID, model.ImageHref, model.Name));
                        }
                    }
                }

                return list;
            }

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

    HistoryRestore("restoreid",productId);

    5.数据源的绑定

      Repeater1.DataSource = GetLastProducts();
          Repeater1.DataBind();

  • 相关阅读:
    CF258D
    CF662C
    CF1295F
    CF1406E
    CF1270F
    CF1278F
    CF1523E
    CF1554E
    算法第四章上机实践报告
    LCA RMQ+ST表学习笔记
  • 原文地址:https://www.cnblogs.com/muzhiye/p/1925855.html
Copyright © 2011-2022 走看看