Asp.net 2.0 跨页面回发





0/5 (0投票)
这是 Asp.net 2.0 中引入的新概念,用于使用按钮的 PostbakUrl 属性将值从一个页面传递到特定页面。
这是 Asp.net 2.0 中引入的新概念,用于使用按钮、链接按钮和图像按钮的 PostbakUrl 属性将值从一个页面传递到特定页面,从而可以轻松地从先前页面访问这些值。
以下是跨页面回发的示例:
可以通过以下 3 种方式实现:
1)Server.Transfer("PageUrl");
2)Response.redirect(" PageUrl")
3)PostbackUrl("PageUrl")
此示例包含 Source.aspx 和 Destination.aspx,共 2 个页面
在 Source.aspx 中
------------------------------
名:<asp:TextBox ID="FirstName" runat="server"></asp:TextBox><br />
姓:<asp:TextBox ID="LastName" runat="server"></asp:TextBox><br />
<br />
<asp:ImageButton ID="ImageButton1" ImageUrl="~/Image.jpg" Height="30" Width="40" runat="server" PostBackUrl ="~/DestinationPage.aspx" />
<asp:LinkButton ID="LinkButton1" runat="server" PostBackUrl="~/DestinationPage.aspx">链接按钮</asp:LinkButton>
<asp:Button ID="Button1" runat="server" Text="提交到目标页面"
PostBackUrl ="~/DestinationPage.aspx" /><!--onclick="Button1_Click1" />
---------------------------------
在 Source.aspx.cs 中
public string FormFirstName
{
get { return FirstName.Text; }
}
public string FormLastName
{
get { return LastName.Text; }
}
protected void Page_Load(object sender, EventArgs e)
{
if ((PreviousPage != null)&& (PreviousPage.IsCrossPagePostBack))
{
Page previousPage = PreviousPage;
TextBox firstName = (TextBox)previousPage.FindControl("FirstName");
TextBox lastName = (TextBox)previousPage.FindControl("LastName");
}
protected void Button1_Click1(object sender, EventArgs e)
{
Server.Transfer("DestinationPage.aspx");
}
-------------------------------
DestinationPage.aspx
<asp:Label ID="labelFirstName" runat="server" Text="Label"></asp:Label>
<br />
<asp:Label ID="labelLastName" runat="server" Text="Label"></asp:Label>
<asp:TextBox ID="nametxt" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" Text="Button"/>
--------------------------------
DestinationPage.aspx.cs
protected void Page_Load(object sender, EventArgs e)
{
string str = Request.Form["FirstName"];
//if ((PreviousPage != null) || (PreviousPage.IsCrossPagePostBack))
if((!Page.IsPostBack) || (PreviousPage.IsCrossPagePostBack))
{
SourcePage prevPage = PreviousPage;
labelFirstName.Text = prevPage.FormFirstName;
labelLastName.Text = prevPage.FormLastName;
}
else if ((PreviousPage!=null) ||(PreviousPage.IsCrossPagePostBack))
{
SourcePage prevPage = PreviousPage;
// 现在我们可以使用文本框中的值并在两个 Label 控件中显示它们..
labelFirstName.Text = prevPage.FormFirstName;
labelLastName.Text = prevPage.FormLastName;
}
}