您的位置:首页 > 编程学习 > Web > 正文

怎么实现显示用户浏览过的历史记录

更多 时间:2013-8-16 类别:编程学习 浏览量:2561

怎么实现显示用户浏览过的历史记录

怎么实现显示用户浏览过的历史记录

主要的思路是:当用户浏览一个网页的时候写入cookie,再统一把cookie读出来就是历史记录了。其实现步骤为:

 

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


 

  • C# 代码   复制
  •     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的方法

     

  •  
  • C# 代码   复制
  •         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存储数据


     

  • C# 代码   复制
  •         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();

     

  • 上一篇:ASP.NET 生成条形码
  • 下一篇:extjs table布局
  • 您可能感兴趣