我对page_init,页面preinit,加载有疑问。 我需要知道我们何时使用它还需要在生命周期的不同阶段调用对象。
请让我知道他们将如何处理每个活动
答案 0 :(得分:4)
它称为页面生命周期,因为在页面请求的不同阶段,不同的对象会填充不同的信息。
以下是一些很好的链接:
答案 1 :(得分:4)
页面事件首先发生在用户控制事件之前。因此页面PageInit事件触发,然后所有用户控制PageInit事件触发。页面PageLoad事件触发,然后所有用户控制PageLoad事件触发。等...
有时开发人员会将私有对象的初始化放在他们的用户控件PageLoad处理程序中。
如果页面PageLoad处理程序调用使用未初始化的私有对象的用户控件方法,则会出现常见问题。由于用户控件PageLoad事件尚未触发,因此这些对象仍为“null”,抛出异常(Object未设置为Object实例)。
然后,我通常使用PageInit处理程序初始化用户控件中的内部对象。这样,当调用使用它们的公共方法时,它们不是“空”。
如果您不从页面PageInit处理程序调用任何用户控件方法,则此方法有效。在我看来,你不应该这样做。这不是页面代码中处理PageInit的原因。使用页面PageLoad处理程序进行用户控制方法调用。
答案 2 :(得分:1)
您可能会发现自己使用的是OnInit和Load。差异主要在于ViewInate反序列化事件,它发生在OnInit之后,因此您无法从OnInit中的控件读取值。 此外,在OnInit中,您可以(必须)动态地向页面添加新控件 所有其他的东西,比如填充网格和从表单字段中读取(文本框,下拉列表......)都在Load事件中。