【发布时间】:2016-07-15 18:20:32
【问题描述】:
我有一个母版页和两个网页,WebForm1 和 WebForm2。在母版页上,有两个 LinkButtons 可以转到 WebForm1 或 WebForm2。
当我单击 LinkButton 转到 WebForm1 时,WebForm1 的 Page_Load 事件处理程序被调用并且 Page.IsPostBack == false。到目前为止一切顺利。
然后,当我单击转到 WebForm2 时,会发生这种情况:
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.
为什么当我要去 WebForm2 时调用 WebForm1 的 Page_Load?我正在加载 WebForm2 而不是 WebForm1。
对于所有页面:AutoEventWireup="true"。
<form id="form1" runat="server">
<div>
<p>This is MySite.Master.</p>
<p>
<asp:LinkButton ID="goto1" runat="server" OnClick="goto1_Click">Go To WebForm1</asp:LinkButton>
</p>
<p>
<asp:LinkButton ID="goto2" runat="server" OnClick="goto2_Click">Go To WebForm2</asp:LinkButton>
</p>
<asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
</asp:ContentPlaceHolder>
</div>
</form>
protected void goto1_Click(object sender, EventArgs e) {
Response.Redirect("WebForm1.aspx");
}
protected void goto2_Click(object sender, EventArgs e) {
Response.Redirect("WebForm2.aspx");
}
public partial class WebForm1 : System.Web.UI.Page {
protected void Page_Load(object sender, EventArgs e) {
if (Page.IsPostBack) {
}
}
}
public partial class WebForm2 : System.Web.UI.Page {
protected void Page_Load(object sender, EventArgs e) {
if (Page.IsPostBack) {
}
}
}
【问题讨论】:
-
这就是 asp.net 按钮的工作方式。它们会导致页面回发,这就是再次点击 page_load 的原因。然后点击处理程序将触发。
-
@S.Akbari 请看下面的答案
标签: c# asp.net .net master-pages