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

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全新加载}

}

欢迎访问 在找网

你可能感兴趣的:(null,Class,asp.net,button,PostBack)