ASP.NET中的跨页发送

默认情况下,ASP.NET 网页上导致回发的控件(如 Button 控件)会回发到当前页进行处理。但是,可以将控件配置为发送到其他页。
设置方法是:将该控件的 PostBackUrl 属性设置为 ASP.NET 网页要发送到的页的 URL。
例如:<asp:Button   ID="Button1"   PostBackUrl="~/TargetPage.aspx"   runat="server"  Text="Submit" />

由于跨页发送是针对各个控件配置的,所以您可以创建一个可根据用户单击哪个按钮而发送至不同页的页。
要判断某个页面是否为跨页发送,可以通过属性IsCrossPostBack.

在实际的编程中,可能经常需要在跨页发送的目标页中获取源页中的某些信息,如控件值或公共属性,下面就介绍一下获取的方法。
1:获取源页中的控件值
如果源页和目标页位于同一 ASP.NET 应用程序中,则使用目标页中的 PreviousPage 属性获取
if (Page.PreviousPage != null)
{
    TextBox SourceTextBox =(TextBox)Page.PreviousPage.FindControl("TextBox1");
    if (SourceTextBox != null)
    {
        Label1.Text = SourceTextBox.Text;
    }
}
如果源页和目标页位于不同的 ASP.NET 应用程序中,则可以从Form集合中获取。(注:同一个应用程序中也可以使用Form集合)
if (Request.Form["txtName"] != null)
{
    Response.Write(Request.Form["txtName"].ToString());
}
2:获取源页中的公共属性
若要获取源页的公共成员,必须先获取对源页的强类型引用。
方法是在目标页中包含一个 @PreviousPageType 指令,该指令允许您指定源页
<%@ PreviousPageType VirtualPath="~/SourcePage.aspx" %> 

在源页中,使用如下语句公开了某个文本框的值:
public String CurrentCity
{
    get
    {
        return textCity.Text; //主要用于为跨页发送公开值的属性通常是只读属性
    }
}
在目标页中:
Label1.Text = PreviousPage.CurrentCity;

 



原文地址:https://www.cnblogs.com/lgzslf/p/1579959.html