ASP.NET 2.0跨网页提交几种方法(3)
七、使用PreviousPageType
PreviousPageType属性提供了在跨网页操作中访问源页面的强类型能力,下面让我们演示一下如何不通过任何类型转换来从源页面中获得控件值。代码如下:
<asp:Textbox ID="txtUserName" Runat="server" />
<asp:Textbox ID="txtPassword" Runat="server" />
<asp:Button ID="Submit" Runat="server" Text="Login"(来源 www.iocblog.net)
PostBackUrl="Menu.aspx" />
要注意的是单击按钮可以重定向到一个叫“Menu.asp”的目标页。这个目标页可以使用如下的代码获得用户名和密码:
| <%@ PreviousPageType VirtualPath="~/Login.aspx" %> <script runat="server"> protected void Page_Load(object sender, System.EventArgs e) { String userName = PreviousPage.txtUserName.Text; String password = PreviousPage.txtPassword.Text; //其他可执行代码 } |
在上面的代码中,PreviousPageType属性返回了一个源页面的强类型引用,这样就消除了类型转换。
八、保存视图状态
对于跨网页提交来说,ASP.NET2.0 内嵌了一个叫__POSTBACK的隐藏字段,这个字段包含了关于源页面的视图信息 -- 也就是由源页面提供了,包含了一个带有一个非空PostBackUrl属性值的服务端控件。目标页可以使用__POSTBACK中的信息来获得源页面的视图状态信息。代码如下:
| if(PreviousPage!=null && PreviousPage.IsCrossPagePostBack && PreviousPage.IsValid) { TextBox txtBox = PreviousPage.FindControl("txtUserName"); Response.Write(txtBox.Text); } |
在上面的代码中核对了用于确保PreviousPage属性不为null的检查代码。顺便提一下,如果目标页和源页面不在同一个应用程序中,这个 PreviousPage属性的值为null。只有在进行跨网页提交操作时,IsCrossPagePostBack属性才为true。
这个跨网页提交的特性,是ASP.NET2.0中最强有力的特性之一,这种技术将允许在一个页面中提交到另外一个页面,并且可以在目标页面地无缝地操作源页面中的数据。
文章整理:iocblog
版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。