主页  范文大全   设计学院   SEO研究   免费资源   网赚大全  QQ资源区    电影下载  在线电影   短信&笑话   校内网   理财知识   站长Blog   访客留言   顶级QQ百科

         声明:本站所有资料素材均是由站长精心整理搜集的,属于原创。我们同意您的转载和复制,但是在转载复制时请保留文字出处。本站资料全部免费使用,无需注册,力求打造华北最强最大的免费资源网站。

  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.NETbutton(按钮)控件增加了一项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(方法)属性,让表单提交时采用post2提交方式但这不是必要因为所有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(文本)属性内容

教程录入:xxYsh.com    责任编辑:admin 
发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口

推荐链接