【整理】asp.net新特性之跨页投递

跨页投递
    让web开发人员决定在进行提交操作时将窗体数据发送到何处。
前提条件
    必须是实现了IButtonControl接口的控件,即该控件必须有PostBackUrl属性和Click事件。实现方式:

< asp:Button ID = " Button1 "  runat = " server "  Text = " Button "  PostBackUrl = " ~/TargetPage.aspx " />

从源页获取信息
    通过Page.PreviousPage属性获得对源页的引用;
    如果目标页和源页位于不同的应用程序,则不能使用Page.PreviousPage来获取对源页的引用,但可通过Request.Form["控件ID"]来获取源页发送的数据。
    源页代码

< asp:TextBox ID = " TextBox1 "  runat = " server " ></ asp:TextBox >
        
< asp:Button ID = " Button1 "  runat = " server "  Text = " Button "  PostBackUrl = " ~/TargetPage.aspx " />
    目标也代码
Page prePage  =  Page.PreviousPage;
if  (prePage  !=   null )
{
    TextBox textBox1 
=  prePage.FindControl( " TextBox1 " as  TextBox;
    
if  (textBox1  !=   null )
    {
        Response.Write(textBox1.Text.Trim());
    }
}
获取源页的公共属性
    源页代码
aspx页面
< asp:Button ID = " Button1 "  runat = " server "  Text = " Button "  PostBackUrl = " ~/TargetPage.aspx " />
aspx.cs页面
public   string  CurrentCity
{
    
get  {  return   " 四川 " ; }
}
    目标页面
aspx页面
<% @ PreviousPageType VirtualPath = " ~/SourcePage.aspx "   %>
aspx.cs页面
Response.Write(PreviousPage.CurrentCity.Trim());
检查目标页中的回发
    1.在跨页投递过程中,源页的内容被提交到目标页,执行的是HTTP POST操作
    2.在源页跨页投递到目标页的过程中,虽然执行的是POST操作,但目标页的IsPostBack仍然为false。
    3.通过在目标页中使用PreviousPage.IsCrossPagePostBack属性来判断目标页是否由于跨页投递接收内容。
跨页发送与Server.Transfer
    1.跨页发送是一种基于客户端的传输,Server.Transfer是一种基于服务端的传输
    2.用PostBackUrl和Server.Transfer定位到的目标页面都可以使用PreviousPage获取对源页的引用
    3.通过PreviousPage.IsCrossPagePostBack属性确定是否是跨页投递
    4.PostBackUrl可以重定向到任何页面,而不仅仅是同一个应用程序的页面;Server.Transfer只能定向到同一个应用程序中的页面。
    5.在使用Server.Transfer定向到另一个页面的时候,浏览器的URL始终指向的源页的路径,此时点击浏览器的后退和刷新按钮可能会触发异常。

转载于:https://www.cnblogs.com/jewleo/archive/2009/07/06/07061545_1.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值