您好,欢迎来到[编程问答]网站首页   源码下载   电子书籍   软件下载   专题
当前位置:首页 >> 编程问答 >> .NET >> 庖丁解牛读后感 |lysis| 庖丁解牛中 void IStateManagerTrackViewState 私有方法,有什么作用,感觉很奇怪?

庖丁解牛读后感 |lysis| 庖丁解牛中 void IStateManagerTrackViewState 私有方法,有什么作用,感觉很奇怪?

来源:网络整理     时间:2016/7/8 22:05:25     关键词:庖丁解牛读后感

关于网友提出的“庖丁解牛读后感 |lysis| 庖丁解牛中 void IStateManagerTrackViewState 私有方法,有什么作用,感觉很奇怪?”问题疑问,本网通过在网上对“庖丁解牛读后感 |lysis| 庖丁解牛中 void IStateManagerTrackViewState 私有方法,有什么作用,感觉很奇怪?”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题:庖丁解牛读后感 |lysis| 庖丁解牛中 void IStateManagerTrackViewState 私有方法,有什么作用,感觉很奇怪?
描述:

 void IStateManager.TrackViewState() 
私有方法,有什么作用,感觉很奇怪?

using System;
using System.Text;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.ComponentModel;
namespace KingControls
{
   public class FaceStyle : TableItemStyle, IStateManager
    {
        #region 类变量
        private bool _blnOK;
        #endregion
        #region 构造函数
        public FaceStyle()
        {
            _blnOK = false;
        }
        #endregion
        #region 属性
       
        [Browsable(true)]
        [Description("自定义类测试变量")]
        public bool OK
        {
            get
            {
                return _blnOK;
            }
            set
            {
                _blnOK = value;
            }
        }
        
        bool IStateManager.IsTrackingViewState
        {
            get
            {
                return base.IsTrackingViewState;
            }
        }
        #endregion
        #region 方法
        //从当前点开始, 此控件具有保存视图状态功能       
        void IStateManager.TrackViewState()
        {
            base.TrackViewState();
        }
       
        object IStateManager.SaveViewState()
        {
            object[] state = new object[2];
            state[0] = base.SaveViewState();            
            
            state[1] = (object)OK;
            //状态管理会存储此返回的值; 另外此方法返回值还有个用途: 创建复合控件时取得各个子控件的视图状态时使用
            return state;
        }
       
        void IStateManager.LoadViewState(object state)
        {
            if (state == null)
            {
                return;
            }
            object[] myState = (object[])state;
            base.LoadViewState(myState[0]);
            OK = (bool)myState[1];                
        }
        #endregion      
    }
}

解决方案1:

TrackViewState是用来打开跟踪ViewState开关的

解决方案2:

在生命周期的initcompleted会执行trackviewstate方法
这个方法表明开始跟踪viewstate 了
也就是说只有在initcompleted事件处理函数之后的viewstate才有用

解决方案3:

TrackViewState方法是在Init阶段后面调用的,其后的变化将保存到StateBag里去,但其前的变化不会保存
为了减少在网络上的传输量,应该只保存“变化”的数据到视图状态中。
TrackViewState


以上介绍了“庖丁解牛读后感 |lysis| 庖丁解牛中 void IStateManagerTrackViewState 私有方法,有什么作用,感觉很奇怪?”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/2432049.html

庖丁解牛读后感相关图片

庖丁解牛读后感相关文章