龚艺的博客

龚艺的博客-码行天下

天才在于勤奋,知识在于积累。

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

ASP.NET页面之间传值的方法,我试过的有3种方法,现在总结如下:

注意:如果谁还知道别的方法,不妨说来,共同交流一下。

一种是通过session变量来传送相应的值,再一种是可以通过用QueryString来传送相应的值,还有就是通过Server.Transfer方法来实现。现介绍如下:

1.使用session变量

使用这个方法是最常见的方法,在此中方式不仅可以把值传递到下一个页面,还可以交叉传递到多个页面,直至把Session变量的值removed后,变量才会消失。举例如下:

(1)创建一个web  form 
(2)在新建的web  form中放置一个button1,在放置两个TextBox1,TextBox2   
(3)为button按钮创建click事件

代码如下:

private  void  Button1_Click  (object  sender,  System.EventArgs  e) 
{  
 Session["UserName"]=TextBox1.Text; 
 Session["Password"]=TextBox2.Text; 
 Response.Redirect("login.aspx"); 

(4)新建一个目标页面命名为login
(5)在webform2中放置两个Label1,Label2 
在webform2的Page_Load中添加如下代码: 
private  void  Page_Load  (object  sender,  System.EventArgs  e) 

 Label1.Text=Session["UserName"].ToString(); 
 Label2.Text=Session["Password"].ToString(); 
 Session.Remove("UserName");  //清除COOKIE
 Session.Remove("Password");  //清除COOKIE

运行,即可看到传递后的结果了。

2.使用QueryString

Querystring是一种非常简单的传值方式,但是它的缺点就是会把要传送的值显示在浏览器的地址栏中,并且在此方法中不能够传递对象。如果你想传递一个安全性不是那么太重要或者是一个简单的数值时,这个方法是最合适的。举例如下:

(1)创建一个web  form 
(2)在新建的web  form中放置一个button1,在放置两个TextBox1,TextBox2   
(3)为button按钮创建click事件 
代码如下: 
private  void  Button1_Click  (object  sender,  System.EventArgs  e) 

 string  url="webform2.aspx?UserName="  +    TextBox1.Text  +  "&Password="  +    TextBox2.Text; 
 Response.Redirect(url); 

(4)新建一个目标页面命名为webform2 
(5)在webform2中放置两个Label1,Label2 
在webform2的Page_Load中添加如下代码: 
private  void  Page_Load  (object  sender,  System.EventArgs  e) 

 Label1.Text=Request.QueryString["UserName"]; 
 Label2.Text=Request.QueryString["Password"]; 

运行,即可看到传递后的结果了。 

3.使用Server.Transfer

这个方法虽然有点麻烦,但是也是其中的一种。举例如下:

(1)创建一个web  form 
(2)在新建的web  form中放置一个button1,在放置两个TextBox1,TextBox2   
(3)为button按钮创建click事件 
代码如下: 
private  void  Button1_Click  (object  sender,  System.EventArgs  e) 

 Server.Transfer("webform2.aspx"); 

4、创建过程来返回TextBox1,TextBox2控件的值代码如下: 
public  string  UserName 

 get 
 { 
   return  TextBox1.Text; 
 } 

 
public  string  Password 

 get 
 { 
   return  TextBox2.Text; 
 } 

(5)新建一个目标页面命名为webform2 
(6)在webform2中放置两个Label1,Label2 
在webform2的Page_Load中添加如下代码: 
private  void  Page_Load  (object  sender,  System.EventArgs  e) 

 //创建原始窗体的实例 
 WebForm1  wf1; 
 //获得实例化的句柄 
 wf1=(WebForm1)Context.Handler; 
 Label1.Text=wf1.UserName; 
 Label2.Text=wf1.Password; 

运行,即可看到传递后的结果了。

 

如果谁有更好的方法,可以写出来,大家分享一下。以上3种方法,我都试过,都可以成功的。。。

posted on 2008-08-16 14:15  龚艺-码行天下  阅读(221)  评论(0编辑  收藏  举报