2012-12-07 79 views
0

我在C#中动态创建了一些表格,它们给我viewstate问题。我有一个复选框表格和一个依赖于第一个表格的数字表格。当我按下一个导致回发的按钮时,我遇到了一些问题。这是一个流程图。如何在页面呈现之前加载视图状态

的Page_Load

  • 创建复选框表
  • 创造数项表(复选框始终是空的,表中有错误的行数,但编号是回传正确填充)

回传按钮

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

有没有一种方法可以在创建数字条目表之前将viewstate加载到复选框表?我试图在其中一个或另一个地方(页面加载或回传按钮方法)创建数字条目表,但都不是完全正确的。我知道动态内容需要在每个负载上创建,以便视图状态出现。

我怀疑我可能需要创建一个DataTable,并存储在ViewState的复选框来正确地再现......

回答

0

我想补充的动态控件在你的页面的PreInitInit事件。尽管您可以在之后添加它们,但Init阶段是在为控件加载ViewState数据之后。

如果您在Page_Load控制有中添加控件发挥追赶,这意味着它贯穿所有的页面生命周期事件,直到它与页面的其余部分迎头赶上。这可能会导致您看到的问题。

下面是关于一个优秀的写了Page LifecycleViewStatehttp://www.codeproject.com/Articles/24611/ASP-NET-Internals-Viewstate-and-Page-Life-Cycle

+0

这是一个伟大的文章,谢谢。原来,我可能需要两次构建我的表(一次用于回发数据,并且再次正确构建它)。 – user1666231

相关问题