`
380071587
  • 浏览: 446980 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

跨页投递和Transfer的区别

 
阅读更多

跨页投递和Transfer的区别:

虽然都是在页面间传递信息,但是二者也有很大的不同。下面用实例说明:

关键点:

使用PreviousPage.IsCrossPagePostBack属性判断当前请求是不是跨页投递。
使用PreviousPage.FindControl方法可以获取源页面的控件。
跨页投递容易和Transfer混淆,可以用PreviousPage.IsCrossPagePostBack属性判定。

1.页面执行流程:

2.文件结构图:

3.跨页投递页面:

注意: PostBackUrl="~/DisplayPage.aspx"用来跨页面投递。

4.Transfer页面:

后台代码:

//TransferTest页面;
public partial class TransferTest : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
Server.Transfer("DisplayPage.aspx");
}
}
5.显示页面的后台代码:

//Default.aspx显示页面;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (PreviousPage != null) //是否有投递页面。
{
if (PreviousPage.IsCrossPagePostBack)
{
Response.Write(((TextBox)PreviousPage.FindControl("TextBox1")).Text + "</br><h3>这是跨页投递方法发送的结果</h3>");
}
if (!PreviousPage.IsCrossPagePostBack)
{
Response.Write(Request.Params["TextBox1"] + "</br><h3>这是Transfer方法发送的结果</h3>");
//注意:Request.Params["TextBox1"]用来获取转向页面控件(这里是TextBox1)的值;
}
}
//使用PreviousPage.IsCrossPagePostBack属性判断当前请求是不是跨页投递。
//使用PreviousPage.FindControl方法可以获取源页面的控件。
//跨页投递容易和Transfer混淆,可以用PreviousPage.IsCrossPagePostBack属性判定。
}
}

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics