【发布时间】:2011-11-04 15:17:03
【问题描述】:
虽然this 是一篇关于在 ASP.NET 中处理动态控件的好文章,但我有一个应用程序无法在 PageLoad 或 PageInit 上生成控件。它们是在用户输入数据之后很久才生成的。当我无法在 PageLoad 或 PageInit 期间生成动态生成的控件时,是否有一个好的策略来维护它们?
【问题讨论】:
虽然this 是一篇关于在 ASP.NET 中处理动态控件的好文章,但我有一个应用程序无法在 PageLoad 或 PageInit 上生成控件。它们是在用户输入数据之后很久才生成的。当我无法在 PageLoad 或 PageInit 期间生成动态生成的控件时,是否有一个好的策略来维护它们?
【问题讨论】:
Page_Load 仍然会在“用户输入数据后”触发。 ASP.Net 是无状态的,每次回发时都会重新生成页面。为了使控件正确地保持其状态,您需要确保再次重新创建它们。
【讨论】:
您的Page_Load 事件仍在触发。您可以为控件分配一个 ID,以便在回发时正确地重新创建它们。如果您不为控件分配 ID,它们将获得一个自动生成的名称。这将导致输入值丢失,并且视图状态将无法正常工作。
我问了一个可能对你有帮助的类似问题。
Dynamic User Controls get and maintain values after postbacks
【讨论】: