关于网友提出的“庖丁解牛读后感 |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