微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Viewstate移至数据库后,缺少回发值

如何解决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 举报,一经查实,本站将立刻删除。