我有一个母版页和两个网页,WebForm1和WebForm2。在母版页上有两个LinkButtons,以便转到WebForm1或WebForm2。
当我点击LinkButton转到WebForm1时,会调用WebForm1的Page_Load事件处理程序并调用Page.IsPostBack == false。到目前为止一切都很好。
然后当我点击进入WebForm2时会发生这种情况:
n = nrow(dpcp)
for (i in 1: n) {
for (j in 1: 1000) {
marg_effects[i, j] = (m4[j, 1] * dpcp[i, ] $x1) + (m4[j, 2] * dpcp[i, ] $x2)+ (m4[j, 3] * dpcp[i, ] $x3) + (m4[j, 4] * dpcp[i, ] $x4)
}
}
为什么在我访问WebForm2时调用PageFoad for WebForm1?我正在加载WebForm2而不是WebForm1。
对于所有页面:AutoEventWireup =" true"。
a) The Page_Load event handler for WebForm1 is called again and Page.IsPostBack == true.
b) Then the Page_Load event handler for WebForm2 is called and its Page_Load == false.
Vice versa when going back to WebForm1.
答案 0 :(得分:4)
您看到的是,点击goto1
或goto2
会导致该页面在页面生命周期后执行 Postback 。在这种情况下,它涉及母版页和内容页面。
对此有用的几个链接是
ASP.NET Page Life Cycle Overview
MasterPage and Content Page life cycle
特别是涉及的母版页,这些是事件的顺序
- 内容页面 PreInit 事件。
- 母版页控制初始事件。
- 内容控制初始事件。
- 母版页初始事件。
- 内容页初始事件。
- 内容页加载活动。
- 母版页加载事件。
- 母版页控件加载事件。
- 内容页面控制加载事件。
- 内容页 PreRender 事件。
- 母版页 PreRender 事件。
- 母版页控件 PreRender 事件。
- 内容页面控制 PreRender 事件。
- 母版页控件卸载事件。
- 内容页面控制卸载事件。
- 母版页卸载事件。
- 内容页卸载事件。
醇>
这些发生在 PostBack 上,你会看到
内容页加载事件
这就是为Page_Load
事件触发导致 PostBack 的Click
事件并为 WebForm1 执行完整生命周期的原因
Response.Redirect("WebForm2.aspx");
执行。
答案 1 :(得分:2)
再加上柯克的回答......
如果您只想要一个指向其他页面的简单链接,请不要使用LinkButton
。 LinkButton
只是一个提交按钮,其设计看起来像一个链接 - 它通过ASP.NET自动构建的javascript神奇地连接起来。
如果您想要链接只是将您发送到另一个页面,只需在常规HTML中执行:
<a href="WebForm2.aspx">Go To WebForm2</a>