- 浏览: 94682 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
曾老师:
请问
dataFilter: function(data, ...
利用jquery.validate异步验证用户名是否存在 -
changningbuddha:
错误 1 在证书存储区中找不到清单签名证书。 myClock怎 ...
C#winform的小闹钟
ASP.NET跨页面传值技巧总结
在ASP.NET中两个网页传递变量
使用QueryString
使用QuerySting在页面间传递值已经是一种很老的机制了,这种方法的主要优点是实现起来非常简单,然而它的缺点是传递的值是会显示在浏览器的地址栏上的(不安全),同时又不能传递对象,但是在很多传递的值少而安全性要求不高的情况下,这个方法还是较多地被首选使用。
使用这种方法包括如下的步骤:
a,使用控件创建web表单(form)
b,创建可以返回表单的按钮和链接按钮
c,在按钮或链接按钮的单击事件里创建一个保存URL的字符变量
d,在保存的URL里添加QueryString参数
e,使用Response.Redirect重定向到上面保存的URL
下面的代码片断演示了如何实现这个方法:
源页面代码:
private void Button1_Click
(object sender, System.EventArgs e)
{
string url;
url="webform1.aspx?var1=" + TextBox1.Text + "&var2=" +
TextBox2.Text;
Response.Redirect(url);
}
目标页面代码:
private
void Page_Load
(object sender, System.EventArgs e)
{
Label1.Text=Request.QueryString["var1"];
// Label1.Text=Request.QueryString["var1"]
也可以直写为 Label1.Text=Request["var1"]下面的语句也是一样可以简写
Label2.Text=Request.QueryString["var2"];
}
使用Session变量
使用Session变量是可以在页面间传递值的的另一种方式,在本例中我们把控件中的值存在Session变量中,然后在另一个页面中使用它,以不同页面间实现值传递的目的。但是,需要注意的是在Session变量存储过多的数据会消耗比较多的服务器资源,在使用session时应该慎重,当然了,我们也应该使用一些清理动作来去除一些不需要的session来降低资源的无谓消耗。使用Session变量传递值的一般步骤如下:
a,在页面里添加必要的控件
b,创建可以返回表单的按钮和链接按钮
c,在按钮或链接按钮的单击事件里,把控件的值添加到session变量里
d,使用Response.Redirect方法重定向到另一个页面
e,在另一个页面提取session的值,在确定不需要使用该session时,要显式清除它
在开始使用前,首先看一下如何的使用SESSION,和ASP中相差不多
写入SESSION变量:
C#:
Session["username"])="aa";
VB:
Session("username")="aa"
读取SESSINN变量:
C#
string username= Session["username"];
VB:
dim
username=Session("username")
下面的是一段使用session的程序代码 :
源页面代码:
private void Button1_Click
(object sender, System.EventArgs
e)
{
Session["var1"]=TextBox1.Text;
Session["var2"]=TextBox2.Text;
Server.Transfer("webform1.aspx");
}
目标页面代码:
private void Page_Load
(object sender, System.EventArgs e)
{
Label1.Text=Session["var1"].ToString();
Label2.Text=Session["var2"].ToString();
Session.Remove("var1");
Session.Remove("var2");
}
使用Server.Transfer
这个方法相比上面介绍的方法稍微复杂一点,但在页面间变量传递中却是特别有用的,使用该方法你可以在另一个页面以对象属性的方式来存取显露的值,当然了,使用这种方法,你需要额外写一些代码以创建一些属性以便可以在另一个页面访问它,但是,这个方式带来的好处也是显而易见的。总体来说,使用这种方法是简洁的同时又是面向对象的。使用这种方法的整个过程如下:
a,在页面里添加必要的控件
b,创建返回值的Get属性过程
c,创建可以返回表单的按钮和链接按钮
d,在按钮单击事件处理程序中调用Server.Transfer方法转移到指定的页面
e,在第二个页面中,我们就可以使用Context.Handler属性来获得前一个页面实例对象的引用,通过它,就可以使用存取前一个页面的控件的值了
以下代码综合实现上述步骤过程的代码:
源页面代码:
把以下的代码添加到页面中
public
string Var1
{
get
{
return TextBox1.Text;
}
}
public string
Var2
{
get
{
return TextBox2.Text;
}
}
然后调用Server.Transfer方法
private void
Button1_Click
(object sender, System.EventArgs e)
{
Server.Transfer("webform1.aspx");
}
目标页面代码:
private void
Page_Load
(object sender, System.EventArgs e)
{
//create instance
of source web form
WebForm1 wf1;
//get reference to current handler
instance
wf1=(WebForm1)Context.Handler;
Label1.Text=wf1.Var1;
Label2.Text=wf1.Var2;
}
后记:
笔者在上面使用不同的方法实现了ASP.NET页面间变量传递,这三种方法是:QueryString,Session和Server.Transfer,或许你还可以找到其他的办法来实现ASP.NET页面间变量传递,实际上你稍想点办法也可以将变量传递给页面自己(页面刷新特别是换页显示时传递新的页号等时比较常用)。
这里特别提下ruquest. QueryString 中的request对象实际上操作system.web 命名空间中的类httprequest。当客户发出请求执行asp.net时,CLR会将客户端请求信息包装在Request对象中。这些请求信息包括请求报头、客户端基本信息(浏览器信息、浏览器版本号、用户所用的语言、编码方式等)、请求方法(post、get)、参数名、参数值等。Request对象的调用方法为:
Request.collection[“variable”]
其中collection包括QueryStrin、Form、Cookies、ServerVariables四种集合,我们上面曾提到可以将Request.QueryString["var1"]写为Request["var1"]看起来比较简洁,但这样作其实不是一种好的方法,因为省掉collection选项后,Request会按照QueryString、Form、Cookies、ServerVariables的顺序进行搜索直到发现“variable”所指的关键字并返回其值,没有找到则返回(null)。因此为了提供程序的执行效率,最好还是指定collection,过多地搜索会影响程序执行的效率。置于Cookies、ServerVariables等我将在以后的文章详细说明。
发表评论
-
缩略图
2011-05-16 11:19 1269缩略图 Web应用中最薄弱的环节就是传输,即速度问题。图片格 ... -
给图片加水印
2011-05-16 11:14 1426水印 在网络中发布资源时,比如图片,很多时候需要保护版权,即 ... -
.net绘图操作五
2011-05-16 11:02 1213统计图是信息管理系统常用的功能,常用的有饼图、柱形图、拆线图等 ... -
.net绘图操作四
2011-05-16 11:00 992绘制简单图形 简单图形是组成复杂图形的基础,通过本小节的例子 ... -
.net绘图操作三
2011-05-16 10:47 1598在.NET中图形包括以下两个步骤。 第一,创建Graphic ... -
.net绘图操作二
2011-05-16 09:57 13931.4 Brush Brush通常被称为,用于定义填充图形形 ... -
.net绘图操作一
2011-05-16 09:35 1498.NET对图形操作的支持类 ... -
(推荐)海量数据库的查询优化及分页算法方案
2011-04-28 18:14 1118建立一个web 应用,分页浏览功能必不可少。这个问题是数据库处 ... -
在你的Fckeditor安装Google map plugin
2011-04-28 18:13 1260Fckeditor是现在很常见的Html编辑器,他好用的地方 ... -
分享c#动态生成文字图片解决方案
2011-04-28 18:12 3519大家都知道我们如果想把网页上的文字做出比较炫的效果,便只能用P ... -
浅谈ASP.NET报表控件
2011-04-28 18:07 1903浅谈ASP.NET报表控件 作者:管理员 来源:51CT ... -
数据绑定控件导出到excel
2011-04-26 20:41 1393aspx页面代码 <div> ... -
数据库连接访问数据时出错
2011-04-22 09:39 1001超时时间已到。超时时间已到,但是尚未从池中获取连接。出现这种 ... -
文件上传中sever.mapPath和Request.PhysicalApplicationPath用法
2011-04-16 08:44 1141aspx页面代码: 添加一个上传控件 <p> ... -
文件的写和读操作方法总结
2011-01-02 21:55 899今天下午看了文件的相关操作,其中最常见的就是创建和读取的操作了 ... -
vs里面根据html模板页生成静态html页面
2011-01-02 17:19 1271在.net中生产静态的html页面主要用到的 IO流技术,先读 ... -
ckeditor的配置(html在线文本编辑器)
2011-01-01 09:11 1877一.ckeditor 3.3.1精简 1、删除_sam ... -
.net的开源cms系统网址收藏
2010-12-21 14:01 947这是我从别人博客上看 ... -
使用下拉列表对gridview分页
2010-12-10 16:32 915这是我看到别人的博客的,不说好不好,先记下来,以后还是有用;先 ... -
很完美的sql数据库访问助手类封装
2010-11-27 22:08 1427看到一本教材上对数据 ...
相关推荐
ASP.NET跨页面传值是Web开发中的常见需求,本文将介绍五种常用的方法,帮助开发者在不同的场景下选择合适的方式。 1. **使用QueryString变量**: QueryString是最直观的传值方式,它通过URL参数传递数据。适用于...
以下将详细介绍几种常用的ASP.NET跨页面传值技巧。 1. **使用QueryString变量**: QueryString是通过URL参数来传递数据的方式。在a.aspx页面上,可以将Label1的文本内容添加到URL中,然后通过Response.Redirect...
使用QueryString变量 使用Application 对象变量 使用Session变量 使用Cookie对象变量 使用Server.Transfer方法
### ASP.NET跨页面传值技巧详解 #### 一、引言 在ASP.NET应用程序开发过程中,经常需要在不同页面之间传递数据。为了提高程序的健壮性和灵活性,掌握多种跨页面传值技巧是非常必要的。本文将详细介绍五种常用的数据...
每个ASP.NET页面都有自己的生命周期,包括初始化、加载事件、验证、呈现和卸载等阶段。父子页面间的通信通常发生在这些阶段中的特定时刻,以确保数据的正确传递和处理。 1. **Query String**: 最简单的父子页面间...
ASP.NET 页面传值技巧是开发 ASP.NET 应用程序时常用的技术,用于在不同页面间传递数据。这里介绍两种常见的页面传值方法:通过 `Response` 和 `Request.QueryString` 以及通过 `Session`。 1. **通过 `Response` ...
本文将深入探讨几种ASP.NET跨页面传值的技术,以及如何在实际项目中应用这些技巧。 1. QueryString参数传递: 最简单也最常见的跨页面传值方式是通过URL的QueryString来实现。在源页面上,可以通过Response....
在ASP.NET中,有多种方式可以实现页面间的数据传递,这些传值技巧是开发者必须掌握的基本技能。以下将详细阐述这些方法。 1. **Query String(查询字符串)** Query String是最常见的页面间传值方式,通过URL附加...
### ASP.NET传值方法详解 #### 一、概述 在ASP.NET开发中,页面之间的数据传递是一项基础且重要的技能。合理的数据传递不仅能够提高程序的效率,...掌握这些传值技巧,将有助于提高ASP.NET应用程序的功能性和可用性。
通过本文的学习,您应该已经掌握了如何使用ASP.NET结合JavaScript实现页面间传值的基本技巧。这对于构建功能丰富的Web应用程序非常有帮助。当然,随着技术的发展,还有更多高效、优雅的方式来解决类似的问题,如使用...
在这篇文章里,azamsharp 将为我们介绍一些ASP.NET页面传值的方式。本文所举的例子非常简单,仅仅包含了一个文本框和几个按钮,当按钮点击时文本框中的字符串将会以不同的方式传递到另外的页面去。 1. Response....
1. Get(即使用QueryString显式传递)方式:在url后面跟参数。特点:简单、方便。缺点:字符串长度最长...常用技巧是把隐秘的数据存在隐藏域中由form提交。适用数据:大量数据,包括文件上传。适用范围:同Get方法用法:
Asp.net 弹出窗口的几种方法 Asp.net 的几种页面传值方法 ASP.NET 简单下载的实现 Asp.net常用的三十多个代码 ASP.NET常用的三十三种实用代码 ASP.NET常用的三十三种实用代码 ASP.NET常用的三十三种实用代码 等
5. **工作流与ASP.NET的交互**:在实例中,主程序(ASP.NET页面或控制器)可能通过调用工作流服务来启动、暂停、恢复或终止流程。同时,工作流可以通过事件触发或回调函数与主程序交换信息,实现双向通信。 6. **...
虽然主要提及的是JavaScript技巧,但JavaScript在ASP.NET中也经常被用于增强页面交互性,因此这个资源对于增强ASP.NET页面的用户体验也很有价值。 9. **在Asp.net中如何实现弹出提示对话框.mht**: 这个网页文件...
14. ASP.NET 页面传值:包括 URL 参数、Session、Cookie、Application 和 Server.Transfer 等方法。 15. 装箱与拆箱:装箱是将值类型转换为对象,拆箱则是将对象转换回原始值类型。 16. 接口继承:接口可以继承...