ASP.NET中页面传值技巧 (转载-清清月儿博客)

原创 2007年09月14日 20:42:00
在ASP.NET中有几种基于页面间的传值方法:常见的有QueryString.这种方法最简单不过了,但缺点就是它把要传送的值显示在地址栏中,如果对于在安全性的信息来说这并不是一种好的解决方案。还有一个缺点就是它不能传对象。这种方法适合于传送一个简单的值及安全性不大重要的信息。例:
   有两个页面:WebForm1.aspx,WebForm2.aspx。
  在WebForm1.aspx.cs的某些事件中放置如下代码:
  string url="WebForm2.aspx?name="+this.txtname.Text;
  Response.Redirect(url);            
 接着关键时刻出现了:在WebForm2.aspx.cs中某些事件中放置如下代码:
 lblname.Text=Request.QueryString["name"];
 OK! 整个传值过程完成!

  还有一种是利用Session变量来传值,这种也比较常用。利用Session比较灵活,可以
在多个页面间进行传值。当调用其remove后,Session即失效。同样用两张页面举个例:
WebForm1.aspx.cs中写入如下代码:
Session["name"]=txtname.Text;   
Response.Redirect("WebForm2.aspx");
下面在WebForm1.aspx.cs中取出Session的值:
lblname.Text=Session["name"].ToString(); //因为取出来的是一个对象,所以必须转换类型
Session.Remove("name");? //使Session失效。                    

  第三种方式是利用Request对象来取值,(注:这里使用的是html控件)这种比较简洁。实现如下:

在WebForm1.aspx中:

Name:

?

在WebForm2.aspx.cs中某个事件写入:Response.Write(Request.Form["txtname"]);

当点击submit按钮后,即通过Request.Form[”txtname”]取出了值,

 

第四种方法是利用Server对象的Transfer()方法来传值,它接收一个页面对象。

下面用代码来讲解一下这种实现方式:

在WebForm1.aspx 的某个事件中写入如下代码:Server.Transfer("WebForm2.aspx"); //传递页面对象
接着就可以在WebForm2.aspx.cs中获取WebForm1的页面对象。
if(Context.Handler is WebForm1) //判断传递过来的是否WebForm1,因为可能会有多个传递对象。    
{                                             
WebForm1 f1=(WebForm1)Context.Handler; //通过Context.Handler来创建一个WebForm1的页面对象,返 回一个object                                           
Response.Write("Hey,I get it with Context Handler "+((TextBox)f1.FindControl("TextBox1")).Text+"

");??      
}                                              
//最后通过调用WebForm1对象的FinControl()方法来查找WebForm1中名为"TextBox1"的一个文本控件,在此也可以换成其它的控件,不管查找的是哪一种控件,都必须将其强制转换为其类型,本示例中为TextBox,最后调用其属性Text,获取在TextBox1中的值,达到传值的效果。
  这种方法同样很灵活,可以传递多个页面对象,而不是传递值,因此当获取到页面对象的时候就可以获取此页面对象中的某些控件的值或其它的数据。

(注:以上几种方法,除了Request.Form()这种传值方法使用的是HTML控件外,其它几种都是使用WEB控件) 

GridView清清月儿绝技

 快速预览:GridView无代码分页排序GridView选中,编辑,取消,删除GridView正反双向排序GridView和下拉菜单DropDownList结合GridView和CheckBox结合...
  • long102
  • long102
  • 2007年03月26日 21:03
  • 980

博客园小技巧

博客园小技巧   作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢! 在博客园写博的半年中,我有...
  • XuanZuoNuo
  • XuanZuoNuo
  • 2013年08月26日 12:55
  • 936

高手 清清月儿,收藏

 .NET 工具 C# to VB.NET Translator Fiddler FxCop代码标准检测工具 httpwatch Memcached Multiple IE Nunit单元测试 Tab...
  • lzid2008
  • lzid2008
  • 2008年11月06日 17:05
  • 437

ASP.NET中页面传值技巧

在ASP.NET中有几种基于页面间的传值方法:常见的有QueryString.这种方法最简单不过了,但缺点就是它把要传送的值显示在地址栏中,如果对于在安全性的信息来说这并不是一种好的解决方案。还有一个...
  • 21aspnet
  • 21aspnet
  • 2004年10月24日 23:04
  • 2788

清清月儿的好文章

 GridView 72般绝技作者:清清月儿 主页:http://blog.csdn.net/21aspnet/           时间:2007.3.24-26为了写本文,又搭工又搭料,累的2天2...
  • wudiwushen
  • wudiwushen
  • 2007年08月17日 13:04
  • 596

csdn如何转载博客

1、找到要转载的文章,用chrome浏览器打开,右键选择审查元素 2、在chrome中下方的框里找到对应的内容,html脚本中找到对应的节点,选中节点,网页上被选中内容会被高亮显示,然后右键菜单选中...
  • sddxqlrjxr
  • sddxqlrjxr
  • 2015年11月15日 19:12
  • 2997

如何转载CSDN博客

小弟我刚大学毕业,正在找工作,在家等面试的时候就想着看点什么。面试的时候,什么都问你。如果有问题把你问住了,那基本就完了。**,out。 刚看了几篇郭霖大神的几篇博客,就像转载下来,以后自己留着看。结...
  • ppiglets
  • ppiglets
  • 2016年06月27日 15:40
  • 976

一键转载CSDN博客

前言  将喜欢的博客进行转载是对博客的收藏,也能够在以后不断的提高自己,而CSDN并没有一键转载功能,现在提供一种方法方便大家进行转载。实现   我们首先打开要转载的博客,然后鼠标右键就会出现下面的菜...
  • kevinelstri
  • kevinelstri
  • 2017年03月09日 13:38
  • 570

CSDN怎么转载别人的博客

以最新的google为例,来说说我们在阅读csdn遇到别人的好文章转载的办法; 首先,我们找到别人的博客,使用F12审查元素,如下: 找到article_content之后,鼠标右键,按照...
  • ILV_XJ
  • ILV_XJ
  • 2017年05月24日 16:07
  • 352

asp.net页面间传值的五种方法

一、QueryString传值:简单、安全性低 二、Server.Transfer传值:(Page1)Context.handler 三、Cookie传值:客户端 四、Session传值:单用户 五、...
  • jcx5083761
  • jcx5083761
  • 2013年07月16日 02:28
  • 1542
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ASP.NET中页面传值技巧 (转载-清清月儿博客)
举报原因:
原因补充:

(最多只允许输入30个字)