【问题标题】:How to load viewstate before page render如何在页面渲染之前加载视图状态
【发布时间】:2012-12-07 17:05:23
【问题描述】:

我在 C# 中动态创建了一些表,它们给我带来了视图状态问题。我有一个复选框表和一个取决于第一个的数字条目表。当我按下一个导致回发的按钮时,我遇到了一些问题。这是一个流程图。

页面加载

  • 创建复选框表
  • 创建数字条目表(复选框始终为空,表的行数错误,但数字从回发中正确填充)

回发按钮

  • 创建数字条目表(现在已填充复选框,表具有正确的行数,但数字在回发后无法保留)。

在创建数字条目表之前,有没有办法可以将视图状态加载到复选框表中?我试图在一个或另一个地方创建数字条目表(在页面加载或回发按钮方法上),但都不是完全正确的。我知道需要在每次加载时创建动态内容才能显示视图状态。

我怀疑我可能需要创建一个数据表并将其存储在视图状态中,以便复选框正确重新出现...

【问题讨论】:

    标签: c# viewstate


    【解决方案1】:

    我会在您页面的PreInitInit 事件中添加您的动态控件。虽然您可以在之后添加它们,但在 Init 阶段之后是为控件加载 ViewState 数据的时间。

    如果您在Page_Load 期间添加控件,则控件必须播放赶上,这意味着它会运行页面生命周期中的所有事件,直到赶上其余的页。这可能会导致您看到的问题。

    这里有一篇关于Page LifecycleViewState 的精彩文章: http://www.codeproject.com/Articles/24611/ASP-NET-Internals-Viewstate-and-Page-Life-Cycle

    【讨论】:

    • 那是一篇很棒的文章,谢谢。结果我可能需要构建我的表两次(一次用于回发数据,一次用于正确构建它)。
    猜你喜欢
    • 2020-09-18
    • 1970-01-01
    • 2018-07-26
    • 1970-01-01
    • 2018-01-27
    • 1970-01-01
    • 2019-01-19
    • 2016-10-27
    • 1970-01-01
    相关资源
    最近更新 更多