关于组件开发的一个问题???

dragonqq 2004-09-30 11:11:59
我看到书上有这样一个例子
protected override void LoadViewState(object savedState)
{
if (savedState == null)
{
base.LoadViewState(null);
return;
}
if (savedState != null)
{
object[] myState = (object[])savedState;
if (myState.Length != 4)
{
throw new ArgumentException("Invalid view state");
}
base.LoadViewState(myState[0]);
if (myState[1] != null)
((IStateManager)ButtonStyle).LoadViewState(myState[1]);
if (myState[2] != null)
((IStateManager)LabelStyle).LoadViewState(myState[2]);
if (myState[3] != null)
((IStateManager)TextBoxStyle).LoadViewState(myState[3]);
}
}
我不明白myState[0],myState[1],myState[2],myState[3]对应什么值???

...全文
73 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
dragonqq 2004-09-30
  • 打赏
  • 举报
回复
谢谢大家先!
dragonqq 2004-09-30
  • 打赏
  • 举报
回复
protected override object SaveViewState()
{
object[] myState = new object[4];
myState[0] = base.SaveViewState();
myState[1] = (_buttonStyle != null) ? ((IStateManager)_buttonStyle).SaveViewState() : null;
myState[2] = (_labelStyle != null) ? ((IStateManager)_labelStyle).SaveViewState() : null;
myState[3] = (_textBoxStyle != null) ? ((IStateManager)_textBoxStyle).SaveViewState() : null;

for (int i = 0; i < 4; i++)
{
if (myState[i] != null)
{
return myState;
}
}
return null;
}

这是它的SaveViewState() 方法,
myState[0] = base.SaveViewState(); 在这里调用基类的SaveViewState()是规则还是有其他含义!
for (int i = 0; i < 4; i++)
{
if (myState[i] != null)
{
return myState;
}
}
如果myState[0]!=null就返回myState数组,这是为什么?
nerk 2004-09-30
  • 打赏
  • 举报
回复
LoadViewState函数的传入参数:savedState,是一个数组,myState[0]...是各个元素
exboy 2004-09-30
  • 打赏
  • 举报
回复
你看一下 SaveViewState 方法
LoadViewState(object savedState) savedState 的值是 SaveViewState 方法返回的值。

62,254

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧