|  | 设为首页 加入收藏 联系我们 |

|  | 首 页 行业资讯 网站运营 网络编程 数 据 库 网页设计 网络安全 网站推广 平面设计 服 务 器 电子商务 |

| 站内搜索： 热门关键字： 淘特　CMS　门户　信息港　房产　汽车　旅游　分类信息　下载　JspCms 内容管理系统 报社采编 |

现在位置：首页> 网络编程

编辑推荐

热门点击
·ASP.NET应用中缓存Oracle数据
·关于Asp代码与页面的分离
·ASP.NET 2.0功能扩展:跨页提交
·ASP.NET网络编程中常用到的27个函..
·ASP.NET如何在窗体和窗体之间传送数..
·Asp.net中防止用户多次登录的方法
·ASP.NET程序安全的基础知识
·ASP.NET中Server对象的方法
·关于ASP.NET编程中的嵌套If语句
·.NET程序员应该知道些什么

图片推荐
·.NET程序员应该知道些什么

ASP.NET 2.0功能扩展:跨页提交
作者： 日期：2010-03-31 出处： 点击:

ASP.NET 2.0，它的功能有所扩展，能够允许跨页提交。标准HTML表单(form元素)允许你向另外一个页面或者应用程序传递和发送数据信息，方法是使用表单元素。在ASP.NET 1.x中，网页则利用投递机制，把页面数据提交给该页本身。下面就让我们来探讨这个新特性： 传统办法 为了便于比较，我们来回顾网页传递数据的老方法。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(文本)属性的内容。

[1]

- 返回首页
- 打印本文
- 加入收藏
- 返回顶部
- 关闭窗口

相关文章 | 查看留言 发表评论
用 户： |
内 容： |
验证码： |

关于本站　|　免责声明　|　联系我们　|　版权隐私　|　友情链接　|　网站地图
联系电话：0531-88511191 | 客服QQ：6410861 | Email：totcms@163.com | ICP备：88888号 Copyright © TotCms.com All Rights Reserved. 济南淘网科技 版权所有