我想问一下控制执行生命周期的哪个阶段是“服务器端代码编写在aspx文件中”正在执行?
是在SaveState之前还是之后,我声称它处于渲染阶段,是真的吗?
如果我的代码写为,则在aspx文件中
“<%”
if(true)
{
rdlistAnswers.Items.Clear();
foreach (string item in myCollection)
{
i.Value = item;
i.Text = item;
rdlistAnswers.Items.Add(i);
}
"%>"
<asp:RadioButtonList ID="rdlistAnswers" runat="server"</asp:RadioButtonList>
对其进行的更改已呈现但未保存。 但是当把标签写成
时<asp:RadioButtonList ID="rdlistAnswers" runat="server" OnPreRender="loadMe"</asp:RadioButtonList>
-as loadMe是aspx.cs文件中的事件处理程序方法与上面的代码相同 - 更改被呈现并保存,因此当我在PreRender阶段进行更改时,状态会被保存,但是当我执行此操作时将逻辑放在未保存的aspx文件中,这意味着 - 至少我声称 - 放置在aspx文件中的服务器端代码在渲染阶段执行,你同意我吗?
答案 0 :(得分:5)
直接在aspx文件中编写的代码将在ASP.NET页面生命周期中 Render Control的末尾执行。
我测试了precompiling an aspx file和using Reflector to look at the decompiled code。