请教各位大虾:禁用viewstate的页面后台怎样获得控件的属性值?

合法勒索夫斯基 2010-10-25 09:23:48
为了缩小页面的体积,本人想通过这种方式优化一番。

在网上查了很多资料,都没有实现这种做法的具体办法,只查到某些说法如下:只要启动控件状态,并把这两个方法的逻辑放到LoadControlState和SaveControlState中,仍然可以利用ViewState。

散分求助,请各位高手不吝赐教,在此先谢过了。
...全文
92 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
边城的刀声 2010-10-25
  • 打赏
  • 举报
回复

这是个把页面中的TextBox中的两个属性存在ControlSate中的个例子
protected override void LoadControlState(object savedState)
{
if (savedState != null)
{
Pair p = savedState as Pair;
if (p != null)
{
base.LoadControlState(p.First);
ArrayList values = (ArrayList)p.Second;
txtStartPeriodNum.ToolTip = values[0].ToString();
txtStartPeriodNum.BackColor = (Color)values[1];
}
else
{
if (savedState is ArrayList)
{
ArrayList values = (ArrayList)savedState;
txtStartPeriodNum.ToolTip = values[0].ToString();
txtStartPeriodNum.BackColor = (Color)values[1];
}
else
{
base.LoadControlState(savedState);
}
}
}
}

protected override object SaveControlState()
{
object obj = base.SaveControlState();

ArrayList values = new ArrayList();

values.Add(txtStartPeriodNum.ToolTip);
values.Add(txtStartPeriodNum.BackColor);


if (obj != null)
{
return new Pair(obj, values);
}
else
{
return (values);
}
}
边城的刀声 2010-10-25
  • 打赏
  • 举报
回复
http://msdn.microsoft.com/en-us/library/1whwt1k7.aspx
这是个在自定义控件中把数据存在ControlState中的一个例子
边城的刀声 2010-10-25
  • 打赏
  • 举报
回复
如果是开发自定义控件一般会用到LoadControlState和SaveControlState.但ControlState默认也是存在页面中的Hidden标签中的,所以你页面还是瘦不下来
wuyq11 2010-10-25
  • 打赏
  • 举报
回复
Request.Form[""]取值
gongsun 2010-10-25
  • 打赏
  • 举报
回复
你可以用 form表达 提交数据。

62,046

社区成员

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

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

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

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