七使用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的目标页这个目标页可以使用如下的代码获得用户名和密码
<%@ PreviousPageType VirtualPath=
~/Login
aspx
%>
<script runat=server>
protected void Page_Load(object sender SystemEventArgs e)
{
String userName = PreviousPagetxtUserNameText;
String password = PreviousPagetxtPasswordText;
//其他可执行代码
}
在上面的代码中PreviousPageType属性返回了一个源页面的强类型引用这样就消除了类型转换
八保存视图状态
对于跨网页提交来说ASPNET 内嵌了一个叫__POSTBACK的隐藏字段这个字段包含了关于源页面的视图信息 也就是由源页面提供了包含了一个带有一个非空PostBackUrl属性值的服务端控件目标页可以使用__POSTBACK中的信息来获得源页面的视图状态信息代码如下
if(PreviousPage!=null && PreviousPage
IsCrossPagePostBack &&
PreviousPageIsValid)
{
TextBox txtBox = PreviousPageFindControl(txtUserName);
ResponseWrite(txtBoxText);
}
在上面的代码中核对了用于确保PreviousPage属性不为null的检查代码顺便提一下如果目标页和源页面不在同一个应用程序中这个PreviousPage属性的值为null只有在进行跨网页提交操作时IsCrossPagePostBack属性才为true
这个跨网页提交的特性是ASPNET中最强有力的特性之一这种技术将允许在一个页面中提交到另外一个页面并且可以在目标页面地无缝地操作源页面中的数据
[] [] []