messagetimer.aspx.cs
上传用户:lishan0805
上传日期:2019-12-08
资源大小:12048k
文件大小:3k
源码类别:

OA系统

开发平台:

C#

  1. using System;
  2. using System.Data;
  3. using System.Configuration;
  4. using System.Collections;
  5. using System.Web;
  6. using System.Web.Security;
  7. using System.Web.UI;
  8. using System.Web.UI.WebControls;
  9. using System.Web.UI.WebControls.WebParts;
  10. using System.Web.UI.HtmlControls;
  11. using COM.OA.Entity;
  12. using COM.OA.BLL;
  13. using System.Web.Caching;
  14. using System.Collections.Generic;
  15. public partial class index_top_messagetimer : System.Web.UI.Page
  16. {
  17.     protected void Page_Load(object sender, EventArgs e)
  18.     {
  19.     }
  20.     protected void 接收消息定时器_Tick1(object sender, EventArgs e)
  21.     {
  22.         IList<message> newslist = null;
  23.         //判断缓存是否为空~
  24.         if (this.Cache["messagelist"] == null)
  25.         {
  26.             //如果为空查询一次数据
  27.             newslist = messageBLL.Select();
  28.             //实例缓存依赖
  29.             AggregateCacheDependency dependency = new AggregateCacheDependency();
  30.             //绑定要轮询的数据库和表
  31.             dependency.Add(new SqlCacheDependency("OA_DB", "message"));
  32.             //将数据添加进缓存
  33.             this.Cache.Insert("messagelist", newslist, dependency, DateTime.Now.AddHours(1), TimeSpan.Zero);
  34.             //从session里取登陆人信息
  35.             users loginuser = Session["loginuser"] as users;
  36.             //设置where语句
  37.             String where = "m_u_id='{0}' and m_isreturn='{1}'";
  38.             int uid = loginuser.u_id;
  39.             int isreturn = 0;
  40.             where = string.Format(where, uid, isreturn);
  41.             //按条件查询,并返回表关系
  42.             IList<message> newlist = messageBLL.Select(where,true,false);
  43.             //判断返回是否有值(数据库绑定表是否有新消息)
  44.             if (newlist.Count != 0)
  45.             {
  46.                 //将数据放进session,存起来
  47.                 Session.Add("newlist", newlist);
  48.                 //弹出新窗口提示,并显示相关信息。
  49.                 //this.Response.Write(string.Format(GetRedirect.WINALERT,"您有新的消息,请注意查收!"));
  50.                 this.Response.Write("<script>window.open('tanchuxiaoxi.aspx','','height=100, width=400, top=0, left=0, toolbar=no, menubar=no, scrollbars=no, resizable=no,location=no, status=no');</script>");
  51.             }
  52.         }
  53.             //如果数据库无变动,读取缓存信息作为数据源。
  54.         else
  55.         {
  56.             if (this.Cache["messagelist"] is IList<message>)
  57.             {
  58.                 newslist = this.Cache["messagelist"] as IList<message>;
  59.             }
  60.         }
  61.     }
  62. }