zoukankan      html  css  js  c++  java
  • C#实现仿msn提示消息在登录后只弹出一次的效果


    codeproject 上看到一个很不错的控件,完全能够自定义弹出窗口的样式、内容、链接,该控件支持Mozilla, Internet ExplorerOpera,我试用了一下,效果非常不错,推荐大家使用。



    下面主要介绍该控件结合cookie实现登录后只提醒一次的功能!
    一、定义变量}

    #region members
    protected AgronetControl.PopupWin pwVegnet;
    private string downmoontest="downmoontest";
    #endregion

    二、按钮事件

    View Code
    #region Events
    private void Page_Load(object sender, System.EventArgs e)
    {
    pwVegnet.LinkClicked
    +=new EventHandler(pwVegnet_LinkClicked);
    this.pwVegnet.Visible=false;
    if(!IsPostBack)
    {
    bool bl=IsShowMessage();
    if(bl)
    {
    SetMessage();
    setCookies(downmoontest,
    "yes",1);
    }
    else
    {
    this.pwVegnet.Visible=false;
    }
    }
    }
    /// <summary>
    /// 注销按钮
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    private void btnLogOff_Click(object sender, System.EventArgs e)
    {
    RemoveAll();
    }
    private void pwVegnet_LinkClicked(object sender, EventArgs e)
    {
    //此处可以加上"下次是否显示之类的脚本"---downmoon
    Page.Response.Redirect(@"http://www.vegnet.com.cn/user/");
    }

    三、主要方法:
    View Code
    #region Methods
    private void SetMessage()
    {
    pwVegnet.HideAfter
    = 5000 ;
    pwVegnet.Visible
    = true ;
    pwVegnet.Title
    = textTitle.Text;
    pwVegnet.Message
    = textMsg.Text;
    pwVegnet.Text
    = textFull.Text;
    pwVegnet.DragDrop
    = true ;
    pwVegnet.OffsetX
    = 30 ;
    pwVegnet.OffsetY
    = 15 ;
    pwVegnet.DockMode
    = AgronetControl.PopupDocking.BottomRight;
    // 随机弹出窗口样式
    int t = GetRandomID( 1 , 4 );
    switch (t)
    {
    case 1 : pwVegnet.ColorStyle = AgronetControl.PopupColorStyle.Red; break ;
    case 2 : pwVegnet.ColorStyle = AgronetControl.PopupColorStyle.Green; break ;
    case 3 : pwVegnet.ColorStyle = AgronetControl.PopupColorStyle.Blue; break ;
    case 4 : pwVegnet.ColorStyle = AgronetControl.PopupColorStyle.Violet; break ;
    default :pwVegnet.ColorStyle = AgronetControl.PopupColorStyle.Green; break ;
    }
    pwVegnet.Link
    = @" http://www.vegnet.com.cn " ;

    }

    private bool IsShowMessage()
    {
    string str = getCookies(downmoontest);
    if (str == string .Empty || str.ToLower() == " no " )
    {
    return true ;
    }
    else
    {
    return false ;
    }

    }
    public void MsgBox( string strDebug)
    {
    Page.Response.Write(
    " <script language=javascript>alert(' " + strDebug.Replace( " ' " , "" ).Replace( " " , "" ) + " ');</script> " );
    // Page.Response.End();
    }
    public static string RandomKey( int b, int e)
    {
    return DateTime.Now.ToString( " yyyyMMdd-HHmmss-fff- " ) + GetRandomID(b,e);
    }

    public static int GetRandomID( int minValue, int maxValue)
    {
    Random ri
    = new Random( unchecked (( int )DateTime.Now.Ticks));
    int k = ri.Next(minValue,maxValue);
    return k;
    }

    #region 读cookie
    private void setCookies( string cook, string valuee, int num)
    {
    // Response.Cookies.Clear();
    HttpCookie cookie ;
    cookie
    = Request.Cookies[cook];
    if (cookie == null )
    {
    cookie
    = new HttpCookie(cook);
    cookie.Value
    = valuee;
    cookie.Expires
    = DateTime.Now.AddDays(num);
    HttpContext.Current.Response.Cookies.Add(cookie);
    }
    else
    {
    cookie.Value
    = valuee;
    }

    }

    #endregion
    #region 写cookie
    private string getCookies( string cook)
    {
    HttpCookie readcookie
    = Request.Cookies[cook];
    if (readcookie != null && readcookie.Value != null )
    {
    return readcookie.Value;
    }
    else
    {
    return string .Empty;
    }
    }

    #endregion

    #region 去除SESSION/注销
    /// <summary>
    /// 去除SESSION/注销
    /// </summary>
    public void RemoveAll()
    {
    HttpCookieCollection cooks
    = HttpContext.Current.Response.Cookies;
    cooks[downmoontest].Expires
    = new DateTime( 1999 , 10 , 12 );
    HttpContext.Current.Response.Cookies.Add(cooks[downmoontest]);
    }

    #endregion


    #endregion

    实现效果:





    http://www.codeproject.com/KB/custom-controls/asppopup.aspx
    邀月注:本文版权由邀月和博客园共同所有,转载请注明出处。
    助人等于自助!  3w@live.cn
  • 相关阅读:
    [iOS 主要框架的总结]
    [无线传感器 网络中的节点定位技术]
    [JAVA 多种方式读取文件]
    [IOS swift对比oc]
    [IOS 静态库]
    [U3D 导出Xcode工程包,用Xcode给U3D脚本传递参数]
    [U3D 添加大地、天空,用第一视角看看自己做的世界]
    [U3D 画起重机,绑脚本和控制它运动的基本操作]
    Flutter 国际化适配
    Error:Unable to resolve dependency for ':app@releaseUnitTest/compileClasspath': Coul完美解决
  • 原文地址:https://www.cnblogs.com/downmoon/p/1020026.html
Copyright © 2011-2022 走看看