能在自定义的类里获取ViewState吗

解决方案 »

  1.   

    class cls(system.web.ui.page page)
    {
    ViewState[page.ViewStateUserKey]
    dosomthing...
    }
    这样不知道成不
      

  2.   


    如果你的类是从 System.Web.UI.Control 继承的,并且你把它的对象实例放入页面控件树中(例如放入其它控件的Controls集合,并且这个其它控件也放入页面控件树),那么就能使用:this.ViewState[...]
      

  3.   

    但我继承的是 List<T>
    主要是想操作List的时候能同步把数据保存到
    ViewState
      

  4.   


    那么你说的这个viewstate是个什么概念呢?来源自哪里?只有知道来源,知道去向,才能编写出程序嘛!
      

  5.   

        public class ViewStateList<T> : System.Web.UI.Control
        {
            private string _temp;        public ViewStateList()
            {
                _temp = Guid.NewGuid().ToString();
                ViewState[_temp] = new List<T>();
            }        public void Add(T t)
            {
                List<T> _item = (List<T>)ViewState[_temp];
                _item.Add(t);
                ViewState[_temp] = _item;
            }        public void Remove(T t)
            {
                List<T> _item = (List<T>)ViewState[_temp];
                _item.Remove(t);
                ViewState[_temp] = _item;
            }        public System.Collections.IEnumerator GetEnumerator()
            {
                List<T> _item = (List<T>)ViewState[_temp];
                foreach (T t in _item)
                {
                    yield return t;
                }
            }
        }这样就可以了
      

  6.   

    不就是引用当前页面吗,搞这么复杂,
    无论在什么地方,只要这段代码会在页面执行,
    一句话://获取当前页面
    System.Web.UI.Page _thisPage = (System.Web.UI.Page)HttpContext.Current.Handler;