唐山网站建设

设为主页 加入收藏 繁體中文

asp基础教程:网页间数据传递方法小结

核心提示:先容 我们总是会碰到这样的情况,需要将数值从1个网页传递到另1个网页。在这篇文章中,向你展现了几种从1个网页向另1个网页传递数值的几种方法。

先容

我们总是会碰到这样的情况,需要将数值从1个网页传递到另1个网页。在这篇文章中,向你展现了几种从1个网页向另1个网页传递数值的几种方法。在此例子中,创建的网页由1个文本控件和几个按钮控件组成。在文本框中输进的数据通过被标识在按钮控件中的不同方法从1个网页传递到另1个网页。

Response.Redirect

让我们首先看1看如何使用Response.Redirect方法传递数据。这是它们当中最简单的方法。在文本框中输进1些数据,并且当你输进完成数据后,按下“Respose.Redirect”按钮。我们会得到1个提示,有时我们想在catch程序中传递另1个网页,意味着捕捉到例外程序并且向另1个网页传递。假设你试图这样做,它会给你1个System.Threading例外程序。由于你想遗留下1个线程向另1个网页传递数据,所以这个例外程序就会被抛出。

Response.Redirect("WebForm5.aspx",false);

这个语句告知编译器定位到“WebForm5.aspx”,这里的“false”意味着在当前网页不能结束你正在做的事情。应当看1看线程发布命令的System.Threading类。在下面,看1看按钮事件的C#代码。 “txtName”文本控件的名字,文本框的内的值传递到1个叫做“WebForm5.aspx”的网页。在“?”以后的“Name”符号只是1个临时的响应变量,这个变量保持着文本的数值。

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");

首先,创建1个cookie命名为“cName”。既然1个cookie实例可以具有很多数值,告知编译器这个cookie持有“Name”数值。我们将它赋值给TextBox并且最结后将它加进Response流,再使用 Response.Redirect方法传递给其它网页。

让我们看1看如何得到被另1个网页传递的cookie数值。

if (Request.Cookies["Name"] != null )

Label3.Text = Request.Cookies["Name"].Value;

如你所看到的,象我们之前做1的1样正是使用同1种方法,刚刚我们在Request.QueryString之内,使用了Request.Cookies。记注1些浏览器不接收cookies。


1 2 下1页

核心提示:先容 我们总是会碰到这样的情况,需要将数值从1个网页传递到另1个网页。在这篇文章中,向你展现了几种从1个网页向另1个网页传递数值的几种方法。

Session Variables

接下来我们看1看session变量,这些变量由服务器来处理。第1个响影1从客户端传递到服务器,Sessions就创建了,并且当用户封闭浏览器窗口或1些异常操纵产生,session就会结束。给你1些可使用session变量来传递数值的方法。在下面你看到为用户创建的Session和 “Name”是关键字,也如着名的Session关键字1样,关键字被赋给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变量。这里有1小段代码,这段代码显示如何做到那些事情。1旦创建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从网页中重新得到数值。通过使用方法的属性取得那些数值。既然它们易于编写代码和修改,使用属性是1种好方法。在你的第1个网页中,制造1个属性,这个属性可以返回TextBox的值。

public string GetName

{

get { return txtName.Text; }

}

我们使用Server.Transfer来将此控件发送到1个新网页。留意: 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

特别留意 与你看到的1样,从1个网页向别1网页传递数值时有不同的方法。每1个方法有它自己的优点也有其缺点。所以,当你传递数值时,选择好你所需要的所以你就会有1种好方法,这类方法对你是最为可行的。

上1页 1 2 http://www.fw8.net/


TAG:方法,网页,控件,数值,变量
评论加载中...
内容:
评论者: 验证码: