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
  • 相关阅读:
    设计模式之工厂模式
    东方通 部署项目 报错 内存溢出解决
    java8提取对象集合中的一项属性
    vue 函数节流
    ALINK(三十一):特征工程(十)特征选择(二)卡方选择器 (ChiSqSelectorBatchOp)
    ALINK(三十):特征工程(九)特征选择(一)主成分分析(PcaTrainBatchOp/PcaPredictBatchOp)
    ALINK(二十九):特征工程(八)特征组合与交叉(三)Hash Cross特征 (HashCrossFeatureBatchOp)
    ALINK(二十八):特征工程(七)特征组合与交叉(二)Cross特征预测/训练 (CrossFeaturePredictBatchOp)
    ALINK(二十七):特征工程(六)特征组合与交叉(特征组合也叫特征交叉)(一)
    ALINK(二十六):特征工程(五)特征离散化(五)二值化 (BinarizerBatchOp)
  • 原文地址:https://www.cnblogs.com/downmoon/p/1020026.html
Copyright © 2011-2022 走看看