如何解决Viewstate移至数据库后,缺少回发值
| 根据另一篇文章的建议,我将视图状态移到了数据库中,而不是完全禁用它。但是,现在我已经这样做了,当我在带有动态添加项的下拉列表中发回表单时,该值为空(这是在禁用viewstate时发生的,这是我将其移至D B) 为什么会这样呢?视图状态在页面上时还可以,为什么现在视图状态在数据库中时为什么它将停止工作? 使用.NET 2.0 谢谢。解决方法
这可能是生命周期问题。当页面期望时,您可能还没有足够早地恢复ViewState。尝试在PageInit方法中加载ViewState,看看是否可以解决?
除非您的ViewState非常大,否则我将其保留在页面上。如果要减少页面加载时间,请在页面标签中添加trace属性,然后查看真正的瓶颈在哪里(这也将为您提供准确的ViewState大小)。除非您要处理成千上万的记录,否则ViewState大小对性能的影响应该可以接受。
更新
用于保存单选按钮选择状态的示例语法:
protected override void LoadViewState(object savedState)
{
base.LoadViewState(savedState);
if (ViewState[\"SomeValue\"] != null)
someValue = stringViewState[\"SomeValue\"];
}
protected override object SaveViewState()
{
ViewState[\"SomeValue\"] = someValue;
return base.SaveViewState();
}
,我不确定您是如何实现它的,但是我的方式是创建自定义PageStatePersister
和PageAdapter
。如果您做对了,那就行得通。这是一篇文章,提供了使用此方法的示例。
http://forums.asp.net/t/1293397.aspx/1?Store+ViewState+in+the+Database+in+++Hidden+Form+Field
马修
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。