首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么我的自定义服务器控件不维护视图状态信息?

为什么我的自定义服务器控件不维护视图状态信息?
EN

Stack Overflow用户
提问于 2012-01-08 21:52:46
回答 1查看 1.8K关注 0票数 0

我正在创建一个自定义服务器控件。下面是相关的自定义控件:

代码语言:javascript
运行
复制
    public class ManagementUserControl : UserControl
    {
        GridView _grv;

        public ManagementUserControl()
        {
            _grv = new GridView();
        }

        /// <summary>
        /// binds the grid to controls.
        /// </summary>
        public override void DataBind()
        {
            _grv.DataBind();
        }
        protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);
            if (!IsPostBack)
            {
    //add controls only when is not postback
                InitializeGrid(); 
            }
        }
        void InitializeGrid()
        {
            this.Controls.Add(_grv);
        }
        [Browsable(true), EditorBrowsable(EditorBrowsableState.Always)]
        public object DataSource
        {
            get { return _grv.DataSource; }
            set { _grv.DataSource = value; }
        }
    }

我在Default.aspx后面的代码中添加了数据源对象,如下所示:

代码语言:javascript
运行
复制
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            List<string> lst = new List<string>();
            lst.Add("test1");
            lst.Add("test2");
            lst.Add("test3");
            ucManagement.DataSource = lst;
            ucManagement.DataBind();
        }
    }

首先,它工作得很好,但当我回发页面时,该控件就消失了。所以我检查了Load event中的Conrols集合,发现它是空的。更糟糕的是,grid.DataSource在回发时为空!为什么网格视图的视图状态不被维护,数据源值在回发时丢失?顺便说一句,视图状态在页面或web.config文件中的任何位置都不会关闭。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-01-08 22:07:40

在asp.net站点上找到了this。看起来这就是你想要的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8778090

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档