|
![]() |
名片设计 CorelDRAW Illustrator AuotoCAD Painter 其他软件 Photoshop Fireworks Flash |
|
介绍 我们总是会碰到这样的情况,需要将数值从一个网页传递到另一个网页。在这篇文章中,向你展示了几种从一个网页向另一个网页传递数值的几种方式。在此例子中,创建的网页由一个文本控件和几个按钮控件组成。在文本框中输入的数据通过被标识在按钮控件中的不同方式从一个网页传递到另一个网页。 Response.Redirect 让我们首先看一看如何使用Response.Redirect方式传递数据。这是它们之中最简朴的方式。在文本框中输入一些数据,并且当你输入完成数据后,按下“Respose.Redirect”按钮。我们会得到一个提示,有时我们想在catch程序中传递另一个网页,意味着捕获到例外程序并且向另一个网页传递。假如你试图这样做,它会给你一个System.Threading例外程序。因为你想遗留下一个线程向另一个网页传递数据,所以这个例外程序就会被抛出。 Response.Redirect("WebForm5.aspx",false); 这个语句告诉编译器定位到“WebForm5.aspx”,这里的“false”意味着在当前网页不能结束你正在做的事情。应该看一看线程发布命令的System.Threading类。在下面,看一看按钮事件的C#代码。“txtName”文本控件的名字,文本框的内的值传递到一个叫做“WebForm5.aspx”的网页。在“?”之后的“Name”符号只是一个临时的响应变量,这个变量保持着文本的数值。 private void Button1_Click(object sender, System.EventArgs e) { // Value sent using HttpResponse Response.Redirect("WebForm5.aspx?Name="+txtName.Text); } 好的,到这种观点为止,你使用Response发送了数值。刚刚,在此我收集到了这些数值,所以在“WebForm5.aspx”page_Load事件中,写入这些代码。首先,我们检查到输入的值不为null。假如不是这样,我们只是简朴地在网页上使用Label控件显示数值。注重:假如你使用Response.Redirect方式来传递这些数值,所有这些数值在浏览器的URL中都是不可见的。你绝不能使用Response.Redirect来传递信用证号码和机密信息。 if (Request.QueryString["Name"]!= null) Label3.Text = Request.QueryString["Name"]; Cookies 接下来使用Cookies。Cookies在服务器端创建,但是客户端省略。在此 “Cookies” 按钮的click事件中,写入以下代码: HttpCookie cName = new HttpCookie("Name"); cName.Value = txtName.Text; Response.Cookies.Add(cName); Response.Redirect("WebForm5.aspx"); 首先,创建一个cookie命名为“cName”。既然一个cookie实例可以拥有许多数值,告诉编译器这个cookie持有“Name”数值。我们将它赋值给TextBox并且最结后将它加入Response流,再使用Response.Redirect方式传递给其它网页。 让我们看一看如何得到被另一个网页传递的cookie数值。 if (Request.Cookies["Name"] != null ) Label3.Text = Request.Cookies["Name"].Value; 如你所看到的,象我们以前做一的相同正是使用同一种方式,刚刚我们在Request.QueryString之内,使用了Request.Cookies。记注一些浏览器不接收cookies。 Session Variables 接下来我们看一看session变量,这些变量由服务器来处理。第一个响影一从客户端传递到服务器,Sessions就创建了,并且当用户关闭浏览器窗口或者一些非常操作发生,session就会结束。给你一些可以使用session变量来传递数值的方式。在下面你看到为用户创建的Session和 “Name”是要害字,也如知名的Session要害字相同,要害字被赋给TextBox数值。 // Session Created Session["Name"] = txtName.Text; Response.Redirect("WebForm5.aspx"); // The code below shows how to get the session value. // This code must be placed in other page. if(Session["Name"] != null) Label3.Text = Session["Name"].ToString(); Application Variables 有时,我们需要存取来自网页任何地方的数值。因为那样,可以使用Application变量。这里有一小段代码,这段代码显示如何做到那些事情。一旦创建Application变量并且为其赋值,在应用程序的任何地方都可以重新得到它的值。 // This sets the value of the Application Variable Application["Name"] = txtName.Text; Response.Redirect("WebForm5.aspx"); // This is how we retrieve the value of the Application Variable if( Application["Name"] != null ) Label3.Text = Application["Name"].ToString(); HttpContext 可以使用HttpContext从网页中重新得到数值。通过使用方式的属性获得那些数值。既然它们易于编写代码和修改,使用属性是一种好方式。在你的第一个网页中,制造一个属性,这个属性可以返回TextBox的值。 public string GetName { get { return txtName.Text; } } 我们使用Server.Transfer来将此控件发送到一个新网页。注重:Server.Transfer仅仅将此控件传递到新的网页并且不重新定位该网页,这意味着你会看到在URL中旧网页的地址。简朴地在“Server.Transfer”按钮单击事件,并且增加下列代码。 Server.Transfer("WebForm5.aspx"); 现在,让我们定位网页,数值就传递到该网页上,在这种情况下使用的该网页是“webForm5.aspx”。 // You can declare this Globally or in any event you like WebForm4 w; // Gets the Page.Context which is Associated with this page w = (WebForm4)Context.Handler; // Assign the Label control with the property "GetName" which returns string Label3.Text = w.GetName; Special Note 特殊注重 与你看到的相同,从一个网页向别一网页传递数值时有不同的方式。每一个方式有它自己的长处也有其缺点。所以,当你传递数值时,选择好你所需要的所以你就会有一种好方式,这种方式对你是最为可行的。 返回类别: 教程 上一教程: 巧用缓存提高ASP程序的性能 下一教程: 提高ASP性能的最佳选择(一) 您可以阅读与"WEB程序中网页间数据传递方式小结"相关的教程: · 浅谈ASP中WEB页面间的数据传递 · 在ASP程序中实现数据库事务控制 · 在ASP程序中访问ACCESS数据库 · 用WEB(ASP)方法实现SQL SERVER 数据库的备份和恢复 · 关于ASP程序中日期型数据的格式问题 |
![]() ![]() |
快精灵印艺坊 版权所有 |
首页![]() ![]() ![]() ![]() ![]() ![]() ![]() |