zoukankan      html  css  js  c++  java
  • 网奇iwms插件之“我浏览过的文章”

    最近用网奇iwms系统做网站,考虑到浏览者的方便,做了一个“我浏览过的文章”的插件,演示地址:四川艺考网 http://www.scykw.cn,具体过程如下:

    1.在VS中打开网站,指向路径:D:\wwwroot\scykw.cn,此路径下有iwms的系统。

    2.新建项目:IWMS_Plugin,新建类TopicInfo,用于浏览历史的类,编写如下代码:

        [Serializable]
        public class TopicInfo
        {
            public TopicInfo()
            {
            }

            private string m_PageURL = "";
            private string m_PageTitle = "";
            public string PageURL
            {
                get { return m_PageURL; }
                set { m_PageURL = value; }
            }
            public string PageTitle
            {
                get { return m_PageTitle; }
                set { m_PageTitle = value; }
            }
        }

    3.新建类:TopicInfoList,代码如下:

     [Serializable]
        public class TopicInfoList : System.Collections.ArrayList, System.ICloneable
        {
            public TopicInfoList()
            {

            }

            private Hashtable m_IOInfoHash = new Hashtable();

            public virtual int Add(TopicInfo info)
            {
                if (this.m_IOInfoHash.ContainsKey(info.PageURL))
                    return 0;

                this.m_IOInfoHash.Add(info.PageURL, info);
                return base.Add(info);
            }

            public new virtual void Clear()
            {
                this.m_IOInfoHash.Clear();
                base.Clear();
            }
        }

    4.新建 类History,用于历史记录有服务:

        public class History
        {
            public History()
            {
            }

            public static void AddHistory(TopicInfo info)
            {
                TopicInfoList oldlist = (TopicInfoList)HttpContext.Current.Session["History"];
                if (HttpContext.Current.Session["History"] == null)
                {
                    TopicInfoList list = new TopicInfoList();
                    list.Add(info);
                    HttpContext.Current.Session["History"] = list;
                }
                else
                {
                    if (!oldlist.Contains(info))
                    {
                        oldlist.Add(info);
                    }
                }
            }

            public static TopicInfoList GetHistory()
            {
                TopicInfoList oldlist = (TopicInfoList)HttpContext.Current.Session["History"];

                if (oldlist != null)
                    return oldlist;

                return new TopicInfoList();
            }

            public static int ClearHistory()
            {
                try
                {
                    TopicInfoList list = History.GetHistory();
                    list.Clear();
                    return 1;
                }
                catch
                {
                    return 0;
                }
            }
        }

    5.在网站项目中新建用户自定义控件:History.ascx,代码如下:

    <%@ Control Language="C#" Inherits="IWMS_Plugin.HistoryHelp" %>
    <script src="inc/jquery.js" type="text/javascript"></script>
    <script language="javascript" type="text/javascript">
    $(function()
    {
        AddHistory();
        getHistory();
    });

    function ClearHistory()
    {
        $("#btn_clear").val("正在删除...");
        var callback=function(obj)
        {
            if(obj.value>0)
            {
                $("#HistoryList").html("");
            }else{alert("清除失败");}
            $("#btn_clear").val("清空历史记录");
        };
        
        IWMS_Plugin.HistoryHelp.ClearHistory(callback);
    }

    function AddHistory()
    {
        var callback=function(obj)
        {
            getHistory();
        };
        
        IWMS_Plugin.HistoryHelp.AddHistory(window.location.href,$("title").html(),callback);
    }

    function getHistory()
    {
        var callback=function(obj)
        {
            if(obj.value!=null)
            {
                $("#HistoryList").html(obj.value);
            }else{alert("读取失败");}
        };
        
        IWMS_Plugin.HistoryHelp.getHistory(callback);
    }
    </script>
    <style type="text/css">
    #HistoryList,#HistoryList li{margin:0px;padding:0px;list-style:none;}
    #HistoryList li a{display:block;padding:2px;border:1px solid #fff;margin:2px;text-decoration:none;}
    #HistoryList li a:hover{background:#eeeeee;border:1px solid #ccc;}
    </style>
    <input type="button" value="清空历史记录" onclick="ClearHistory()" id="btn_clear"/>
    <ul id="HistoryList">
    </ul>

    5. IWMS_Plugin.HistoryHelp类代码如下:

     public class HistoryHelp : System.Web.UI.UserControl
        {
            protected void Page_Load(object sender, EventArgs e)
            {
                AjaxPro.Utility.RegisterTypeForAjax(typeof(HistoryHelp), this.Page);
            }

            [AjaxPro.AjaxMethod]
            public static string getHistory()
            {
                StringBuilder sb = new StringBuilder();
                TopicInfoList list = History.GetHistory();
                foreach (TopicInfo info in list)
                {
                    sb.Append(String.Format("<li><a href=\"{0}\" title=\"{1}\">{1}</a></li>",
                                        info.PageURL,
                                        info.PageTitle
                        ));
                }

                return sb.ToString();
            }

            [AjaxPro.AjaxMethod]
            public void AddHistory(string url,string title)
            {
                TopicInfo info = new TopicInfo();
                info.PageURL = url;
                info.PageTitle = title;
                History.AddHistory(info);
            }

            [AjaxPro.AjaxMethod]
            public int ClearHistory()
            {
                return History.ClearHistory();
            }
        }

    大功告成!!系统演示请见:www.scykw.cn

  • 相关阅读:
    DS博客作业03--树
    DS博客作业02--栈和队列tt
    DS博客作业02--线性表
    c博客06-结构体&文件
    C博客作业05--指针
    C语言博客作业04--数组
    C语言博客作业03--函数
    图书馆
    DS博客作业05——查找
    DS博客作业04——图
  • 原文地址:https://www.cnblogs.com/YrRoom/p/1511513.html
Copyright © 2011-2022 走看看