这个PreviousPage属性在ServerTransfer和跨网页提交中都可以使用在ASPNET中我们可以在调用ServerTransfer操作后使用PreviousPage属性在目标页面中来获得源页面的数据代码如下:
{
ServerTransfer(menuaspx);
}
protected void Redirect_Click(object sender EventArgs e)
在这个接收面中我们现在可以获得Web页面的数据代码如下
protected void Page_Load(object sender EventArgs e)
{
if (PreviousPage != null)
{
TextBox txtBox = (TextBox)
PreviousPageFindControl(txtUserName);
if (textBox != null)
string userName = textBoxText;
//其他可执行的代码
}
}
要注意的是上面的代码必须将txtUserName控件转换为TextBox类型以便可以访问其中的值
七使用PreviousPageType
PreviousPageType属性提供了在跨网页操作中访问源页面的强类型能力下面让我们演示一下如何不通过任何类型转换来从源页面中获得控件值代码如下
< asp:Textbox ID=txtUserName Runat=server />
< asp:Textbox ID=txtPassword Runat=server />
< asp:Button ID=Submit Runat=server Text=Login
PostBackUrl=Menuaspx />
要注意的是单击按钮可以重定向到一个叫Menuasp的目标页这个目标页可以使用如下的代码获得用户名和密码
八保存视图状态
对于跨网页提交来说ASPNET 内嵌了一个叫__POSTBACK的隐藏字段这个字段包含了关于源页面的视图信息 也就是由源页面提供了包含了一个带有一个非空PostBackUrl属性值的服务端控件目标页可以使用__POSTBACK中的信息来获得源页面的视图状态信息代码如下
if(PreviousPage!=null && PreviousPageIsCrossPagePostBack &&
PreviousPageIsValid)
{
TextBox txtBox = PreviousPageFindControl(txtUserName);
ResponseWrite(txtBoxText);
}
在上面的代码中核对了用于确保PreviousPage属性不为null的检查代码顺便提一下如果目标页和源页面不在同一个应用程序中这个PreviousPage属性的值为null只有在进行跨网页提交操作时IsCrossPagePostBack属性才为true
这个跨网页提交的特性是ASPNET中最强有力的特性之一这种技术将允许在一个页面中提交到另外一个页面并且可以在目标页面地无缝地操作源页面中的数据