如何在页面呈现之前加载viewstate

时间:2012-12-07 17:05:24

标签: c# viewstate

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

的Page_Load

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

回发按钮

  • 创建数字条目表(现在填充复选框,表格具有正确的行数,但数字不能在回发后存活)。

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

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

1 个答案:

答案 0 :(得分:0)

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

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

以下是关于Page LifecycleViewState的精彩文章: http://www.codeproject.com/Articles/24611/ASP-NET-Internals-Viewstate-and-Page-Life-Cycle