知识大全 ASP.NET2.0的跨页回调
Posted 知
篇首语:青春须早为,岂能长少年。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 ASP.NET2.0的跨页回调相关的知识,希望对你有一定的参考价值。
ASP.NET2.0的跨页回调 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
在ASP NET 中 跨页提交允许把一个页面的回调回调提交到一个不同的网页中 本文中我们将探索一些不同的跨页提交的方法 另 翻译的特别困难 请各位朋友批评指正
在ASP NET 中 跨页提交允许把一个页面的回调回调提交到一个不同的网页中 本文中我们将探索一些不同的跨页提交的方法
ASP NET 只提供了提交到本页的方式 在很多情况下 我们的解决方案中会有跨页的提交的需求 传统的方法都是通过Response Redirect或者Server Transfer的方式转移到另外的一页然后模拟出一个跨页回调的效果
ASP NET 提供了这种能实现从一个表单页提交到另一个表单页的跨页提交的功能
如何实现跨页提交
要实现跨页提交 在源表单页里 需要设置控件的PostBackURL这个属性来实现IButtonControl(比如Button ImageButton LinkButton)接口来定位到目标表单页 当用户单击这个button控件的时候 表单页就会跨页提交到目标表单页 不需要在源表单页中进行任何设置或编写任何的代码
通过FindControl方法在目标页中检索源表单页中的信息
目标表单页获得 跨 过来的那一页请求的信息是通过一个不为空的PreviousPage方法 这个属性代表着源表单页并且为源表单页和其控件建立引用
源表单页上的控件在目标页上可以通过PreviousPage的FindControl方法来获得
protected void Page_Load(object sender EventArgs e)
TextBox txtStartDate = (TextBox) PreviousPage FindControl( txtStartDate );
这时目标表单页是不知道源表单页的任何信息的 PreviousPage这个属性的类型是Page 所以检索控件就可以使用FindControl的方法 但开发人员需要对源表单页的结构有一个大体的了解 而使用FindControl方法必然会有一些限制 比如FindControl方法只能依靠开发人员提供的控件的id属性来定位到一个控件 如果源表单页的控件id变了的话那么这个方法就有可能失效 FindControl方法只能处理那些在当前容器里的控件 如果开发人员需要检索在其它控件中(容器)的控件的话 那么首先需要获得其父控件的一个引用
通过@PreviousPageType指令在目标页中检索源表单页的信息
另外一个方法就是在源表单页已经确定的情况下 使用@PreviousPageType指令 这个指令可以在目标表单页中以强类型的方式访问源表单页 这个指令指定源表单页使用VirtualPath属性还是TypeName属性 PreviousPage属性返回一个强类型的结果来对源表单页进行引用 其允许访问源目标页的公共属性
SourcePage aspx:
<form runat= server >
<asp:textbox runat= server id= txtFirstName />
<asp:textbox runat= server id= txtLastName />
<asp:button runat= server id= btnViewReport Text= View Report PostbackURL= ~/targetpage aspx />
public string FirstName
get return txtFirstName Text;
TargetPage aspx
<%@ PreviousPageType VirtualPath= sourcepage aspx %>
string strFirstName;
strFirstName = PreviousPage FirstName //Strongly Typed PreviousPage allows direct access to the public properties of the source page
通过@Reference指令在目标表单页中访问源表单页
第三种以强类型访问源表单页的方法就是在目标表单页中加入@Reference指令到源目标表单页的引用 然后通过再PreviousPage属性来访问源表单页
通过IsCrossPagePostBack属性来检测跨页的提交
当源表单页跨页提交到目标表单页的时候 目标表单页需要检索源表单页 源表单页就需要在内存中重新加载一次 并且这个过程要经历除了展现(render)以外的所有页面周期所要经过的步骤 而这个被重新加载的页面就是在目标表单页检索源表单页的信息用到的
源表单页的IsCrossPagePostBack属性指明在目标表单页中使用PerviousPage引用的时候是否重新字内存中被加载
. 页A提交到页B
. 页B访问PreviousPage 当源表单页中的IsCrossPostBack的属性为true时源目标页就被重新加载一次
IsCrossPagePostBack属性可以使其在被目标页的PreviousPage引用的时候避免不必要的被重新加载一次
验证
如果源表单页有一些验证控件 源表单页会在跨页提交的时候验证input里输入的内容 目标表单页可以包含一个验证 PreviousPage IsValid来捕获源表单页里的非法的提交
应用的场景
ASP NET 限制只能进行本页的回调 在ASP NET 中你可以跨页进行回调到一个不同的表单页 来实现更多的功能 使代码结构化并且易于维护
比如 页A里汇集了一些基于web的报表 并且需要跨页提交到另一个需要根据前一页的一些参数产生报表的表单页
典型的需要跨页提交的场合就是当你在同一个表单里点击不同的按钮的时候需要把表单数据提交到不同的表单页进行处理 目标表单页被不同的控件所指定 允许把表单的数据提交过去
当跨应用程序提交的时候 跨页提交允许提交表单的数据 但是没有提供源表单页的空间和viewstate的提交
翻译心得
目前为止翻译的最别扭的一篇文章 很多都要靠上下文来猜作者的意思 而按照原文照着翻译下来后 虽然意思是明白 但是怎么看都不顺 所以 用自己的话概括了一下作者的意思 有些话比较长 断句上可能会有错误 请各位朋友批评指正
学习心得
cha138/Article/program/net/201311/13432相关参考
Asp.Net2.0自带的客户端回调 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! AspNet
新手基础教程:ASP.NET2.0缓存技术 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! ASP
ASP.NET2.0新特性概述 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! ASPNET技
ASP.NET2.0——实现数据访问层 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 在文章重点
ASP.NET2.0验证cookie详解 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 对于AS
ASP.NET2.0HiddenField控件 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! H
知识大全 ASP.NET2.0:AdventureWorks贸易分析(2)
ASP.NET2.0:AdventureWorks贸易分析(2) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起
关于ASP.NET2.0编写扩展存储过程 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
新手入门ASP.NET2.0缓存技术 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! ASPNET
ASP.NET2.0实现网站的自动升级 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 网站的自动