- 浏览: 2073843 次
- 性别:
- 来自: 厦门
-
文章分类
- 全部博客 (1409)
- asp/asp.net学习 (241)
- oracle (10)
- delphi (295)
- java (27)
- pb (1)
- 每日点滴 (49)
- 学习方法 (40)
- 思想方面 (104)
- C语言 (5)
- C++ (1)
- 代码重构经验 (5)
- 软件工程 (3)
- 数据库 (99)
- 英语学习 (3)
- mysql (1)
- 该关注的网站或者网页 (42)
- 总结 (7)
- 要去做的事情 (33)
- 算法 (1)
- 网络方面 (29)
- 随感 (96)
- 操作系统 (36)
- UML (12)
- 常用工具的使用 (55)
- 脚本 (7)
- 汇编 (62)
- 数据结构 (2)
- 财务 (38)
- 语文作文 (16)
- 法律 (1)
- 股票 (88)
最新评论
-
devwang_com:
可以,学习了~~
列出文件夹下所有文件夹的树形结构--Dos命令 tree的使用 -
hvang1988:
不管用啊 frxrprt1.PreviewForm.Pare ...
fastReport预览时嵌入到别的窗体 -
00915132:
我也有这个疑问,非常 感 谢
left join加上where条件的困惑 --SQL优化 -
zhuyoulong:
学习了,高效读书
软件架构师要读的书 -
nTalgar:
非常感谢分享!
Application.ProcessMessages用法:
asp.net 2.0 的跨页投递
转自:http://www.dabaoku.com/jiaocheng/biancheng/aspnet/200910101080.shtml
标准HTML表单(form元素)允许你向另外一个页面或者应用程序传递和发送数据信息,方法是使用表单元素。在ASP.NET 1.x中,网页则利用投递机制,把页面数据提交给该页本身。对于ASP.NET 2.0,它的功能有所扩展,能够允许跨页提交。这周就让我们来探讨这个新特性。
传统办法
为了便于比较,我想花一分钟来回顾网页传递数据的老方法。HTML的表格元素有一个action(动作)属性,用来指定服务器端哪项资源(所谓资源,是指一个网页、一段脚本、程序等)来处理这些提交的数据。下面的代码便是一个样例。
<html>
<head><title>Sample HTML form</title></head>
<body>
<form name="frmSample" method="post" action="target_url">
<input type="text" name="fullname" id="fullname" />
<input type="button" name="Submit" value="submit" />
</form>
</body></html>
在文本域(名字是fullname)中输入的值将被提交给表单元素的action属性指定的页面或者程序。对于ASP.NET开发者,即使曾经用过标准HTML表单,也是极不多见的。
ASP.NET开发者面对要从一个网页向另一个网页传递数据信息的任务时,方法选择的余地是异常广阔的。它们包括会话变量(session variables)、cookies、querystring 变量、caching(网页缓存),甚至Server.Transfer方法,但是ASP.NET 2.0还提供了另外一种选择。
ASP.NET 2.0提供的又一办法
在设计ASP.NET 2.0的时候,微软认识到了在网页间交叉传递数据的需求。有了这个意识之后,就为ASP.NET的button(按钮)控件增加了一项PostBackUrl属性。它允许你在用户提交的时候,指明这张表单和上面的数据送往何方(也就是由PostBackUrl属性指定的URL值确定)。一般来讲,跨页传递是客户端在后台使用JavaScript进行传送的过程。
<%@ Page language="vb" %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" ><html><head><title>Cross Postback Example</title></head><body><form id="frmCrossPostback1" method="post" runat="server"><asp:Label ID="lblName" runat="server" Text="Name:"></asp:Label><asp:TextBox ID="txtName" runat="server"></asp:TextBox><br /><asp:Label ID="lblE-mailAddress" runat="server" Text="E-mail:"></asp:Label><asp:TextBox ID="txtE-mailAddress" runat="server"></asp:TextBox><br /><asp:Button ID="btnSubmit" runat="server" Text="Submit" PostBackUrl="CrossPostback2.aspx" /></form></body></html> 中的ASP.NET页面拥有两个文本域(分别表示name(名字)和e-mail(电子邮件)),以及一个用来提交数据的button(按钮)。这个提交按钮的PostBackUrl属性被指定为另外一个网页,这样使得表单提交的时候,数据可以发送到那个页面。注意:这个例子中,表单元素通过设置method(方法)属性,让表单提交时采用post[2]提交方式,但这不是必要的,因为所有cross postback(跨页投递)根据设计均使用post方法。
使用先前页面
ASP.NET页面经由跨页投递的调用而载入的时候,它上面的对象的IsPostBack属性不会被触发。不过,有一项叫做PreviousPage(前一页)的属性使你能够访问和使用那些应用跨页投递的页面。
每当一个跨页请求发生时,当前页的PreviousPage属性就把促发投递的页面引用保存下来。如果页面的产生不是来自跨页投递的激发,或者说页面处于不同的程序组,那么PreviousPage属性将不会被初始化。
你可以通过检查PreviousPage对象来确定页面的载入是否为跨页投递的结果。值如果为null,则说明是普通的载入,而非null值则表明网页来自跨页投递。此外,页面类(Page class)还包含了一个称作IsCrossPagePostBack的方法(method),专门用来确定页面是不是跨页投递的结果。
一旦确定发生了跨页投递,你就可以通过PreviousPage对象的FindControl方法去访问调用页(calling page)上的控件。下面的代码是我们例子中的第二页;它由前面列出的页面所调用。
<%@ Page language="vb" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<html><head>
<title>Cross Postback Example 2</title>
</head><body>
<script language="vb" runat="server">
Sub Page_Load()
If Not (Page.PreviousPage Is Nothing) Then
If Not (Page.IsCrossPagePostBack) ThenResponse.Write("Name:" + CType(PreviousPage.FindControl("txtName"), TextBox).Text + "<BR>")Response.Write("E-mail:" + CType(PreviousPage.FindControl("txtE-mailAddress"), TextBox).Text + "<BR>")
End If
End If
End Sub
</script>
</body>
</html>
这个页先判断它是不是由跨页投递所调用。如果是,就通过FindControl方法访问来自调用页的数值,并把用此方法得到的控件转换为TextBox控件,然后显示它们的Text(文本)属性的内容。
你可以把整个PreviousPage对象转换成触发跨页投递的页面类型。这个方法允许你访问页面的全局属性(public properties)和方法。在我给出这项技术的实例之前,我有必要重写第一个例子,包含进一些全局属性。下面代码是添加了两个属性的第一个清单,这两个属性用于访问域值。
<%@ Page language="vb" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<html><head>
<title>Cross Postback Example</title>
<script language="vb" runat="server">
Public ReadOnly Property Name
Get
Return Me.txtName.Text
End Get
End Property
Public ReadOnly Property E-mailAddress
Get
Return Me.txtE-mailAddress.Text
End Get
End Property
</script></head><body>
<form id="frmCrossPostback1" method="post" runat="server">
<asp:Label ID="lblName" runat="server" Text="Name:"></asp:Label>
<asp:TextBox ID="txtName" runat="server"></asp:TextBox><br />
<asp:Label ID="lblE-mailAddress" runat="server" Text="E-mail:"></asp:Label>
<asp:TextBox ID="txtE-mailAddress" runat="server"></asp:TextBox><br />
<asp:Button ID="btnSubmit" runat="server" Text="Submit" PostBackUrl="CrossPostback2.aspx" />
</form>
</body>
</html>
既然现在属性已经建好,那你就能很容易访问它们。要警惕的是,Page类的PreviousPage对象必须转换成正确的类型,这样才能正确访问它的属性。这可以通过把它转换成合适的page类别的对象加以实现。
<%@ Page language="vb"%>
<%@ Reference Page="~/CrossPostback1.aspx" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<html>
<head>
<title>Cross Postback Example 3</title>
</head><body>
<script language="vb" runat="server">
Sub Page_Load()
Dim cppPage As CrossPostback1_aspx
If Not (Page.PreviousPage Is Nothing) Then
If Not (Page.IsCrossPagePostBack) Then
If (Page.PreviousPage.IsValid) ThencppPage = CType(PreviousPage, CrossPostBack1_aspx)Response.Write("Name:" + cppPage.Name + "<br>")Response.Write("E-mail:" + cppPage.E-mailAddress)
End If
End If
End If
End Sub
</script>
</body>
</html>
说明了这一点,它在页面头部定义了调用页的一项引用,那样这个引用类型就能在代码中使用。通过这项引用,实际的VB.NET代码使用CType函数把PreviousPage对象转换成了适当的类型。这之后,那些属性就可以像代码示范的那样使用了。
关于上述清单中PreviousPage对象IsValid方法的使用在此提醒一下:前页的IsValid属性保证你对它操作之前,它已通过所有合法验证测试。
总结
在网页间传递数据参数有很多项应用,包括保持个人用户信息。祖传的网页解决方案,像使用querystring和cookies,允许你很容易当提交发生时从一个页面指向另一个页面。
ASP.NET 1.1除了提供额外方法外,对这些方法也能很好地支持,可是,ASP.NET 2.0依靠跨页投递,使这方面又有了长足发展。它让一个网页处理来自另一网页的数据变得简单。在你开发你的下一个ASP.NET 2.0程序的时候,可要好好利用这个新概念的优势啊。
该文章转摘自-网页制作大宝库(www.dabaoku.com) - 原文链接:http://www.dabaoku.com/jiaocheng/biancheng/aspnet/200910101080.shtml
发表评论
-
关于 字符串中的单引号, 在sql存储过程中的传输总结; 逗号分隔的多个变量提取方法.
2011-10-14 17:49 3407摘自:http://blog.csdn.net/nutia ... -
抓取网站内容 asp.net
2011-10-11 13:28 1053HttpWebRequest myReq ... -
两个DATASET合并成一个新的DATASET
2011-09-28 18:17 2535摘自:http://topic.csdn.net/t/2 ... -
VS设置使用哪个浏览器来调试网页
2011-08-30 16:57 1200摘自:http://zhidao.baidu.com/ques ... -
可使用js获取TREE的CheckBox
2011-08-20 12:32 1094摘自:http://www.uipower.com/bb ... -
正则表达式 验证邮箱
2011-06-02 18:14 2653正则表达式 摘自:http://www.alixixi.com ... -
未能加载程序集 App_Web_vdcnimdz”错误
2011-04-25 17:38 1604问题描述: 自己的一个WebGPS程序,只是拷到了别的 ... -
.net跳到指定错误页面兵显示详细的错误信息
2011-04-14 16:48 1263.net跳到指定错误页面兵显示详细的错误信息 摘自:h ... -
注册*.ocx控件
2011-04-14 11:23 952注册*.ocx控件 问题描述:本地的网站的bin目录下有了个 ... -
C# 读取文本文件的时候出现汉字乱码
2011-04-12 16:01 2482问题描述:C# 使用ReadAllText方法读取文本文件的时 ... -
VS 2008中如何显示代码的行号
2011-04-09 09:51 1254摘自:http://zhidao.baidu.com/ques ... -
VS.NET2008可以使用书签的功能
2011-04-08 17:19 1397摘自:http://blog.csdn.net/lmh_851 ... -
两个类库要添加引用才能使用
2011-04-02 13:57 1168两个类库要添加引用才能使用 ---------------- ... -
缓存 <%@ OutputCache Duration="6000" VaryByParam="none" %>
2011-04-02 10:53 1184在页首添加: <%@ OutputCache Durat ... -
FrameSet的加载顺序
2011-04-02 09:56 3911FrameSet的加载顺序是: (1) mainFrame ... -
Response.AddHeader “P3P”,”CP=CAO PSA OUR”
2011-04-01 18:01 2561摘自:http://my.donews.com/alor ... -
Hashtable 的使用
2011-03-31 09:36 8212011-3-31 Hashtable 的使用: ... -
google地图使用(二)
2011-03-30 10:30 13362011-3-291. 今天客户反映,说GOOGLE地图上的拖 ... -
GOOGLE地图
2011-03-29 18:31 8382011-3-291. 今天客户反映,说GOOGLE地图上的拖 ... -
此组中没有可用的控件 工具箱 vs2008
2011-03-29 09:20 2141问题描述: 此组中没有可用的控件 工具箱 vs2008 ...
相关推荐
6. **样式和布局**:ASP.NET 2.0支持CSS样式和母版页(Master Pages)技术,用于实现一致的网站布局和样式。母版页定义了网站的公共结构,子页面可以继承其布局,方便修改全局样式。 7. **AJAX支持**:虽然ASP.NET ...
此外,文章还深入探讨了ASP.NET 2.0中的跨页投递技术,这是新版中的一项重要功能。 #### 二、数据转换为XML与缓存应用 ##### 1. 数据转换为XML - **需求**: 在现代Web开发中,XML作为数据交换的一种标准格式被...
3. ASP.NET 2.0改进:增强了Web控件,引入了母版页(Master Pages)、主题(Themes)和皮肤(Skin),提升了用户体验和开发效率。 4. 微软Visual Studio 2005支持:强大的IDE提供了丰富的模板和调试工具,便于快速...
在本项目中,ASP.NET 2.0被用来构建用户友好的前端交互界面,实现用户注册、登录、职位浏览、投递简历等功能。 SQL Server 2005是微软推出的企业级数据库管理系统,具有高度的可靠性和可扩展性。在本网络招聘系统中...
在人才网中,我们可以利用ASP.NET来创建用户交互性强、响应快速的界面,如职位搜索、简历投递等功能。 2. ADO.NET:数据访问是人才网的核心功能,ADO.NET提供了一套完整的数据访问接口,包括Dataset、DataTable、...
本系统采用Visual Studio 2005(简称VS2005)作为开发工具,结合ASP.NET 2.0框架,展示了强大的Web应用开发能力。对于初学者来说,深入理解和学习这个系统具有极高的参考价值。 首先,让我们了解VS2005和ASP.NET ...
ASP.NET求职招聘系统是基于微软的ASP.NET技术与SQL SERVER数据库设计实现的一个在线招聘平台。这个系统旨在连接求职者和招聘方,提供便捷的信息发布、搜索和管理功能,以促进人才流动和企业发展。 ASP.NET是.NET...
5:服务里要求启动asp.net状态服务,不然后台登录不了 6:后台路径http://localhost/admin/login.aspx(用户名及密码:admin admin) 如果在安装过程有不明白的请加无忧招聘系统技术支持 本系统只用于本地测试,只能用...
(可以和 asp.net webform/mvc 无缝整合,具体整合方案,欢迎联系官网购买技术服务)特别推荐:真正跨平台:除了windows,还可以在linux上完美运行。手机自适应:高级版针对移动设备做了特别优化,完美自适应。可以...
工作易人才招聘系统作为工作易人才招聘系统V2.5是基于Win32平台,采用微软.Net2.0(Aspx)+MSSQL 2000(2005)为开发、运行环境,语言天生运算速度是ASP的2-3倍,安全和稳定性更是asp所无法比拟和超越的。其安装简单方便...
1、 高效的性能,极低的投资:基于微软强烈推荐的.Net2.0(C#) + SQL2000和WEB2.0应用而实施开发。在安全和稳定方面无可挑剔。而强大的技术支持却只需要投入数千元即可拥有本系统,它仅是您招聘一个程序员的一个月的...
在技术选型上,本系统选用ASP.NET 2.0作为开发框架,这是一种由微软提供的用于构建动态网站、web应用程序和web服务的平台。ASP.NET提供了丰富的控件和功能,支持C#等编程语言,简化了web开发过程。数据库方面,系统...
【基于ASP.NET技术的招聘系统设计与实现】 在当今信息化社会,招聘系统已经成为企业和求职者之间的重要桥梁。本文主要探讨了一款基于ASP.NET技术的人才招聘系统的设计与实现,旨在利用网络的便利性,帮助企业和求职...
(可以和 asp.net webform/mvc 无缝整合,具体整合方案,欢迎联系官网购买技术服务) 其他特点 •所有 APP 和基础组件都可以自定义安装。 •界面修改方便,模板语法简单,可在线轻松自定义界面; •原生支持 ...
cOffice通用OA系统源代码 Asp.net通用OA系统源代码,也...1、由Asp.net1.1升级到Asp.net2.0(可以通过Vs2005以上Vs开发工具直接开发使用) 2、修正了一些常见问题的bug(如:对路径“c:\udslog.txt”的访问被拒绝等)
2. 后端开发:基于ASP.NET MVC框架,利用C#语言编写业务逻辑,实现数据处理和功能控制。 3. 数据库管理:使用SQL Server存储用户信息、兼职岗位、评论等数据,确保数据安全稳定。 三、主要功能模块 1. 用户模块:...
cOffice通用OA系统源代码 ...1、由Asp.net1.1升级到Asp.net2.0(可以通过Vs2005以上Vs开发工具直接开发使用) 2、修正了一些常见问题的bug(如:对路径“c:\udslog.txt”的访问被拒绝等) 作者:新脉科技
调试平台:IIS+Framework2.0 数据库:access 官方地址:http://www.tywork.net 演示地址:http://qy2.tywork.net 下载地址:http://www.tywork.net/Tianyuanx.rar 后台管理:http://localhost/admin/login.aspx user...
人才管理:发布管理招聘信息,管理在线投递简历; 留言订单管理:审核回复留言,处理在线订单。 后台账户密码:admin 官方网站:http://www.dodecms.net 官方论坛:http://www.dodecms.com 演示网站:...