首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

,怎么让动态添加的控件只在当前操作中显示,下下次不再显示

2012-01-02 
求助,如何让动态添加的控件只在当前操作中显示,下下次不再显示以下是我在App_Code中写的给客户端发送信息

求助,如何让动态添加的控件只在当前操作中显示,下下次不再显示
以下是我在App_Code中写的给客户端发送信息的Message类:
using   System;
using   System.Data;
using   System.Configuration;
using   System.Web;
using   System.Web.Security;
using   System.Web.UI;
using   System.Web.UI.WebControls;
using   System.Web.UI.WebControls.WebParts;
using   System.Web.UI.HtmlControls;

public   class   Message
{
        private   string   m_title;
        private   string   m_description;
 
        public   Message()
        {
        }

        public   Message(string   title,   string   description)
        {
                m_title   =   title;
                m_description   =   description;
        }

        public   string   Title
        {
                get
                {
                        return   m_title;
                }
                set
                {
                        m_title   =   value;
                }
        }

        public   string   Description
        {
                get
                {
                        return   m_description;
                }
                set
                {
                        m_description   =   value;
                }
        }

        public   void   ShowInDialog()
        {
                JScript.Alert(m_description);
        }

        public   void   ShowInWebPage(string   url)
        {
                string   msgUrl   =   url;
                msgUrl   +=   "?title= "   +   m_title;
                msgUrl   +=   "&descript= "   +   m_description;
                string   encodeUrl   =   HttpUtility.UrlEncode(msgUrl);

                System.Web.HttpContext.Current.Response.Redirect(encodeUrl);
        }



        public   void   ShowInWebPage()
        {
                ShowInWebPage( "~/Message.aspx ");
        }

        public   void   ShowInControl(System.Web.UI.WebControls.WebControl   ctrl)
        {
                System.Web.UI.WebControls.Literal   LiteralMessage   =   new   System.Web.UI.WebControls.Literal();
                LiteralMessage.Text   =   HttpUtility.HtmlEncode(m_title   +   ":   "   +   m_description);
                LiteralMessage.ID   =   "LiteralMessage ";
                LiteralMessage.EnableViewState   =   false;

                ctrl.Controls.Add(LiteralMessage);
        }
}

在登录页面调用如下:
                if   (Membership.ValidateUser(tbUserName.Text,   tbPassword.Text))
                {
                        FormsAuthentication.RedirectFromLoginPage(tbUserName.Text,   chkbxRememberMe.Checked);
                }
                else
                {
                        Message   msg   =   new   Message();
                        msg.Title   =   "登录失败 ";
                        msg.Description   =   "用户名或密码错误,请重新登录 ";
                        msg.ShowInControl(PanelMessage);   //PanelMessage为asp:Panel控件
                }
不过在刷新该页面或登录成功后,该消息仍然存在,我将PanelMessage的EnableViewState设为false都没用


[解决办法]
.net本身要实现状态的保持,也就是缓存了上次提交后的状态,这个是用ViewState实现的.
可以写程序,在Page_load后,直接设置Message为空.或设置ViewState禁止使用.

热点排行