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

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="清空历史记录" οnclick="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();
        }
    }

大功告成!!系统演示请见:***

转载于:https://www.cnblogs.com/YrRoom/archive/2009/06/26/1511513.html

网奇iwms插件之“我浏览过的文章”相关推荐

  1. 爱奇艺视频有哪些插件?爱奇艺插件怎么卸载

    是不是觉得爱奇艺视频占空间大,但是又不想卸载?是不是觉得爱奇艺有很多插件,那么怎么卸载爱奇艺插件呢?流星告诉你: 1.首先打开手机爱奇艺视频,然后在通知栏下方找到[我的]按钮,如图所示: 爱奇艺201 ...

  2. jQuery插件:超酷的多列网格式拖放插件gridster.js

    为什么80%的码农都做不了架构师?>>>    日期:2012-8-15  来源:GBin1.com 在线演示  本地下载 以往的文章中,我们分享了很多jQuery相关拖放插件,今天 ...

  3. angularjs封装bootstrap官网的时间插件datetimepicker

    背景:angular与jquery类库的协作 第三方类库中,不得不提的是大名鼎鼎的jquery,现在基本上已经是国内web开发的必修工具了.它灵活的dom操作,让很多web开发人员欲罢不能.再加上已经 ...

  4. 网易云音乐插件现已登陆 Visual Studio Code

    摘要: 听着音乐写代码- 作者:Fdyo 原文:网易云音乐插件现已登陆 Visual Studio Code Fundebug经授权转载,版权归原作者所有. Visual Studio Code 插件 ...

  5. VScode VSC Netease Music(网易云音乐)插件

    VScode VSC Netease Music(网易云音乐)插件 一.安装: 打开VScode右侧安装插件按钮 输入VSC Netease Music搜索 ,点击安装. 二.运行 F1或者ctrl+ ...

  6. QT调用IE浏览器COM插件完成网页浏览

    一.可用的嵌入式浏览器方案 QT在5.6之前可以webkit浏览器框架访问网页,在之后就去掉了webkit,加入了QWebEngineView框架,但是QWebEngineView只能支持VS编译器, ...

  7. 网站系统之咨询(网奇行业门户)(如此做法怎么能对的起“中国建站第一品牌”)

    从网上搜索到网奇行业门户建站系统.从网奇的口号"中国建站第一品牌"来看,很好的公司,看了一下行业网站的 DEMO 链接,感觉还不错. 经过咨询 , 销售人员开始说可以的 , 您是第 ...

  8. 代码发芽网:无需插件支持Blog代码高亮,支持近百种编程语言

        写博客时,没有代码高亮?     发邮件时,代码格式很乱?     有好代码,保存后很难找? 代码发芽网:     无需插件支持Blog代码高亮     支持近百种编程语言     多种配色主 ...

  9. xiuno开发文档_大白 · TinyMCE编辑器v1.9_Xiuno Plugin_奇狐插件商店_奇狐网

    功能强大,所见即所得的富文本编辑器,本地部署速度快,附带Prism代码高亮插件,支持截图粘贴和手动上传图片,还可以编辑源代码. 版本说明 版本内容更新时间 1.0 版本初始化版本2020-03-14 ...

  10. 待办事项桌面插件_让浏览器重获整洁——标签页管理插件:OneTabOneTab PlusToby...

    1 什么是标签页管理插件 chrome浏览器虽然为用户提供了一个非常方便的打开新标签页的方法,但是随着用户浏览网页的时间增长,用户在一个chrome窗口中打开的标签页会越来越多,当这些标签页过多的时候 ...

最新文章

  1. 高并发下秒杀商品,你必须知道的9个细节
  2. 科技部部长:院士头衔不是学术不端挡箭牌、铁帽子!已有多位院士及候选人、校长、教授等被“拿下”...
  3. python实现一个简单的加法计算器_Python tkinter实现简单加法计算器代码实例
  4. FAT AP和FIT AP 区别 (无线篇)
  5. 在Linux系统下生产者消费者,生产者-消费者问题实现 (linux下C语言)
  6. Laravel中数据库的操作
  7. 百度Q2智能云增长强劲;据悉史上最大 AI 芯片诞生!中兴与奇瑞成立合资公司一起加快开发5G汽车……...
  8. html中ng-src,angular项目中,ie中iframe动态的ng-src,如果是路由的地址(带有#的url),页面不显示,googel却正常...
  9. redhat 登录不慢 传文件很慢
  10. bash的基础特性(一)
  11. php无法查询excel数据,laravel phpexcel无法读取excel中中文表头列数据
  12. 20165218 《网络对抗技术》Exp0 Kali安装 Week1
  13. 绘制北京市蜜雪冰城门店地图
  14. 深圳神州行今日起单向收费 零月租成套餐亮点
  15. FlashPaper的安装以及基本使用
  16. 最新TIOBE编程语言排行:C语言第一,Python反超Java,挤进第二
  17. 11月书讯(下) | 拿下这些新书,赢在起跑线
  18. 新手做头条号短视频,这三大点要牢记,让你少走弯路,抓紧收藏
  19. 阿里云吴翰清:从技术人转型做产品经理是一种什么样的体验
  20. PHP工厂模式的好处

热门文章

  1. 清北中科院12位大咖联手,带你入门AI热门领域NLP!限时只需199
  2. 【推荐系统】那些年, 引用量超1000的经典推荐系统论文
  3. 【关系抽取】从文本中进行关系抽取的几种不同的方法
  4. 收藏 | NLP论文、代码、博客、视频资源(LSTM,指针模型,Attention, ELMo,GPT,BERT、多任务学习等)...
  5. 深度学习2.0-24.过拟合与欠拟合
  6. 深度学习花书-3.8 期望、方差与协方差
  7. 一文掌握 Docker 技术体系
  8. 从Google到Facebook再到微博,算法与数据中台大咖谈
  9. 如何选择合适的网站程序
  10. 《linux核心应用命令速查》连载八:kill:杀掉进程