[英]Button Click Not Working after Server.Transfer() method
問題:在第一個 aspx 頁面使用 C# 中的 Server.Transfer() 方法將焦點轉移到它之后,為什么按鈕單擊轉移到的 aspx 頁面沒有正確觸發。
答案:當Server.Transfer 之后在被轉移頁面中單擊按鈕時,它會在被轉移頁面中運行page_load(),而不是button_click()。 如果在傳輸的頁面中再次單擊該按鈕,則 button_click() 將觸發。
---- Main.aspx ----
<%@ Page Language="C#" AutoEventWireup="true"
CodeBehind="Main.aspx.cs"
Inherits="Server_Transfer_App.Main" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Label ID="Label1" runat="server"
Text="Enter Your First Name: "></asp:Label>
<asp:TextBox ID="TextBox1"
runat="server"></asp:TextBox>
</div>
<p>
<asp:Button runat="server" Text="Button"
OnClick="Button1_Click" />
</p>
</form>
</body>
</html>
-----------Main.aspx.cs-----------------------
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace Server_Transfer_App
{
public partial class Main : System.Web.UI.Page
{
protected void Page_Load(object sender,
EventArgs e)
{
}
protected void Button1_Click(object sender,
EventArgs e)
{
Server.Transfer("~/WebForm1.aspx",
true);
//Response.Redirect("~/WebForm1.aspx");
}
}
}
----------- WebForm1.aspx -------
<%@ Page Language="C#" AutoEventWireup="true"
CodeBehind="WebForm1.aspx.cs"
Inherits="Server_Transfer_App.WebForm1" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Label ID="Label1" runat="server"
Text="Label"></asp:Label>
</div>
<div>
</div>
<div>
<%--<input id="Button1" type="button" value="button 1" runat="server" onserverclick="Button1_Click"/></div>--%>
<asp:Button ID="Button1" runat="server" Text="Button 1" OnClick="Button1_Click1" />
<div>
-----------</div>
<div>
<asp:Button ID="Button2" runat="server" Text="Button 2" OnClick="Button2_Click" />
</div>
</form>
</body>
</html>
-------- WebForm1.aspx.cs ------
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace Server_Transfer_App
{
public partial class WebForm1 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
// Use when transfer to this page using Server.Transfer("~/WebForm1.aspx") from Main.aspx
Page pPage = Page.PreviousPage;
if (pPage != null)
{
Label1.Text = ((TextBox)pPage.FindControl("TextBox1")).Text;
}
else
{
//Label1.Text = "Got to here, now click Button 2 to go back.";
Label1.Text = "Did Page Load () in WebForm1, and pPage is NULL.";
}
//Response.Redirect("~/WebForm1.aspx");
}
protected void Button2_Click(object sender, EventArgs e)
{
Response.Redirect("~/Main.aspx");
}
protected void Button1_Click(object sender, EventArgs e)
{
Label1.Text = "Click on Button2";
}
protected void Button1_Click1(object sender, EventArgs e)
{
Label1.Text = "Performed Button1_Click1().";
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.