页面间传值的新思路--PreviousPage

使用PreviousPage可以不需要,上一个页面为传值而去做相关的动作,以下三种形式不同的方法

       PreviousPage:获取向当前页传输控件的页。

第一种方法:

u=2424705731,2319894863&fm=3&gp=41fromPage.aspx:

          //用PostBackUrl属性转到其它页面。
          Buton.PostBackUrl = "toPage.aspx"; 
         //PostBackUrl属性只在(*)Button类型上面才有。且必须由用户触发

toPage.aspx:

          //把之前页面中的控件取过来
          TextBox txtBox =   (TextBox)PreviousPage.FindControl("txtName");

取得来源页面的公共属性值

第二种方法:

使用PreviousPageType:
u=2424705731,2319894863&fm=3&gp=41fromPage.aspx:
       public string UserName {

             //公共属性UserName返回Buton上面的Text值
             get{ return Buton.Text; }
       }
Buton.PostBackUrl = "toPage.aspx";

toPage.aspx:

            //一个Page只能有一个PreviousPageType
            <%@ page PreviousPageType Virtualpath="fromPage.aspx"   %>

           //直接取来源页面中的值

           Response.write( PreviousPage.UserName );

第三种方法:

u=2424705731,2319894863&fm=3&gp=41引用方式

fromPage.aspx:

      //公共属性UserName返回Buton上面的Text值
      public string UserName { 

           get{ return Buton.Text; }
      }
Buton.PostBackUrl = "toPage.aspx";

toPage.aspx:

              //一个Page可以有多个Reference 多个来源页
              <%@ page Reference Virtualpath="fromPage.aspx"   %>

              //获取来源页实例,转成@Reference 指令中定义的页面

              fromPage sourcePage = PreviousPage as fromPage;

              //直接取来源页面中的值   

             //多个页面强转时要判断归属于哪个页面

              Response.write( sourcePage.UserName );

完整代码
toPage.aspx:
26020_fb9d09643ctry {

       //若从非来源页(@Reference 指令中定义的页面)过来。则为NULL      
       if ( PreviousPage != null ) {

             //判断是不是来源页请求过来的(有点类似于IsPostBack)
             if ( PreviousPage.IsCrossPagePostBack )  {
                   fromPage sourcePage = PreviousPage as fromPage;
                  string name = sourcePage.UserName;
            }
      }
}
catch{}
posted @ 2008-07-17 10:37  RicoRui  阅读(1213)  评论(0编辑  收藏  举报