使用PreviousPage可以不需要,上一个页面为传值而去做相关的动作,以下三种形式不同的方法
PreviousPage:获取向当前页传输控件的页。
第一种方法:
//用PostBackUrl属性转到其它页面。
Buton.PostBackUrl = "toPage.aspx";
//PostBackUrl属性只在(*)Button类型上面才有。且必须由用户触发toPage.aspx:
//把之前页面中的控件取过来
TextBox txtBox = (TextBox)PreviousPage.FindControl("txtName");
取得来源页面的公共属性值
第二种方法:
使用PreviousPageType:
fromPage.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 );
第三种方法:
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 );
//若从非来源页(@Reference 指令中定义的页面)过来。则为NULL
//判断是不是来源页请求过来的(有点类似于IsPostBack)
if ( PreviousPage != null ) {
if ( PreviousPage.IsCrossPagePostBack ) {
fromPage sourcePage = PreviousPage as fromPage;
string name = sourcePage.UserName;
}
}
}
catch{}