ASP.net PreInit()与Init()

时间:2011-01-16 17:24:03

标签: asp.net events

从本地论坛我了解PreInit可用于处理以下

PreInit()
>Master pages can be called dynamically
>Themes can be set dynamically
>Programatically add controls to controls collection

我读了Init()是为了

Init()

在这种情况下,我们可以读取控件属性(在设计时设置)。 我们无法读取用户更改的控件值 ,因为在LoadPostData()事件触发后,该更改的值将被加载。

问题

我没有得到“我们无法读取用户改变的控制值”这一点 用户改变控制的价值?。例子可以帮助我理解这一点。

5 个答案:

答案 0 :(得分:2)

在第一篇文章中,您会显示几个控件,例如文本框和提交按钮。

用户在文本框中键入代码,然后单击“提交”。

用户在文本框中键入控件后更改了控件的值,然后将其发布回页面。

在处理LoadPostData之前,您将无法访问输入的值。

这与所有其他服务器端控件几乎相同。

答案 1 :(得分:2)

假设您有一个文本框,一个下拉列表,一些复选框......用户将数据输入到它们中,您希望通过编写来读取它们的值

var text = myTextBox.Text;
var selectedItem = ddl.SelectedItem;

这是你在调用LoadPostData方法之前无法做到的。

此页面提供了不同事件的完整摘要以及它们应用于http://msdn.microsoft.com/en-us/library/ms178472.aspx的内容。它说PreInit应该用于ie。创建动态控件和Init来设置它们的属性。

答案 2 :(得分:1)

PreInit:在开始阶段完成之后和初始化阶段开始之前引发。 将此事件用于以下事项:

  • 检查IsPostBack属性以确定这是否是第一次处理页面。此时还设置了IsCallback和IsCrossPagePostBack属性。
  • 创建或重新创建动态控件。
  • 动态设置母版页。
  • 动态设置Theme属性。
  • 读取或设置配置文件属性值。

初始化:在初始化所有控件并应用了所有外观设置后触发。单个控件的Init事件发生在页面的Init事件之前。

答案 3 :(得分:0)

通过PostBack更改值。表单数据的更改由当前ViewState(直到稍后才加载)与表单数据确定。看到直到稍后才加载,那么你无法在那时读取任何控制值。

答案 4 :(得分:0)

PreInit: 初始化母版页,用户控件,动态控件

初始: 设置控件的属性