您的位置:首页 > 编程语言 > ASP

关于Asp.net页面跳转、传送消息

2010-09-06 22:09 405 查看
ls="20" id="ctl00_ctl00_cphContent_cphDoc_EntryEditor1_richTextEditor" class="mceEditor" style="height:450px;width:100%;">在页面间跳转、传送消息有以下几种方式:
1,查询字符串 + Response.Redirect方法
a. 相当完全从新载入一个页面,和从地址栏中输入地址的效果是一样的。
2,跨页面回发(Cross Post)
a. 方式一:通过设置页面1中的button的postbackurl为页面2。这时,转到页面2,进入页面2的       Page_Load()方法,PreviousPage.IsCrossPagePostBack为真,IsCrossPagePostBack为假,IsPostBack为假,进入PreviousPage.IsCrossPagePostBack判断条件后,执行页面1的生命周期,页面1中的生命周期中,IsCrossPagePostBack为真,PreviousPage.IsCrossPagePostBack属性为假,IsPostBack为假。然后在页面2Unload之后,页面1Unload。
这时,给button设置Click事件执行函数,也不会去执行。
 
b. 方式二:在button的click函数中,使用Server.Transfer()函数,这时,由于出动页面1的按钮单击事件,页面1postback,会执行页面1的page_Load中的Ispostback条件判断,然后执行按钮点击事件,执行Server.Transfer(),页面1生命不结束,而是直接执行页面2生命周期,在页面2中, 会像第一次加载一样, ispostback, PreviousPage.IsCrossPagePostBack, IsCrossPagePostBack均为假,当页面2执行结束后,执行页面1Unload,结束页面1生命周期。
 
可以在某一页面中,采用完全判断:
if (PreviousPage != null)
{
           if (PreviousPage.IsCrossPagePostBack){     // 这里是由postbackurl引发的 }
           else {  // 这里是有Server.Transfer()引发的}
}
else
{
          if (IsPostBack){  // 这里是有自身PostBack引发的}
          else if (IsCrossPagePostBack) {  //  这里是页面2调用页面1的生命周期时}
          else {    // 这里是 第一次加载引发的, 包括 Response.Redirect(),包括有Server.Transfer()引发的页面2全新加载}
}
欢迎访问 在找网
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: