.net 页面之间传值的几种方法!(转)

QueryString传值:
1. 这是最简单的传值方式,但缺点是传的值会显示在浏览器的地址栏中且不能传递对象,只适用于传递简单的且安全性要求不高的整数值,例如:

2. 新建一个WEB项目,添加一个页面命名为Test1,在页面中添加一个Button命名为btnLogin,再添加两个TextBox分别命名为tbxUserName和tbxPassWord,添加Buttond的Click()事件:

private void btnLogin_Click (object sender, System.EventArgs e)

{

    string url=" Test2.aspx?UserName=" +tbxUserName.Text + "&Password=”+tbxPassWord.Text+””;

    Response.Redirect(url);

}

3. 添加另一个页面命名为Test2,在页面添加两个Lable分别命名为labUserName和labPassWord,添加页面的Load()事件:

private void Page_Load (object sender, System.EventArgs e)

{

    labUserName.Text=Request.QueryString["UserName"];

    labPassWord.Text=Request.QueryString["Password"];

}

4. 把Test1设为起始页,运行项目在Test1页面的文本框中输入值后点击按钮,就可以在Test2页面中显Test1页面输入的结果。

 

Server.Transfer传值:
1. 这种方式避免了要传递的值显示在浏览器的地址栏中,但是比较麻烦,例如:

2. 新建一个WEB项目,添加两个页面分别命名为Test1和Test2,在Test1页面中添加一个Button命名为btnLogin,再添加两个TextBox分别命名为tbxUserName和tbxPassWord,在Test2页面添加两个Lable分别命名为labUserName和labPassWord,为Test1添加过程返回tbxUserName和tbxPassWord的值并添加btnLogin的Click()事件:

public string UserName

{

    get

    {

        return tbxUserName.Text;

    }

}

public string Password

{

    get

    {

        return tbxPassWord.Text;

    }

}

private void btnLogin_Click (object sender, System.EventArgs e)

{

    Server.Transfer("Test2.aspx");

}

3. 添加Test2页面的Load()事件:

private void Page_Load (object sender, System.EventArgs e)

{

    Test1 t1; //创建原始窗体的实例

    t1=( Test1)Context.Handler; //获得实例化的句柄

    labUserName.Text= t1.UserName;

    labPassWord.Text= t1.Password;

}

4. 把Test1设为起始页,运行项目在Test1页面的文本框中输入值后点击按钮,就可以在Test2页面中显Test1页面输入的结果。

 

Cookie对象变量:
1. Cookie是针对每一个用户而言的,是存放在客户端的 ,Cookie的使用要配合ASP.NET内置对象Request来使用,例如:

2. 新建一个WEB项目,添加两个页面分别命名为Test1和Test2,在Test1页面中添加一个Button命名为btnLogin,再添加两个TextBox分别命名为tbxUserName和tbxPassWord,在Test2页面添加两个Lable分别命名为labUserName和labPassWord,为Test1添加Buttond的Click()事件:

private void btnLogin_Click (object sender, System.EventArgs e)

{

    HttpCookie cookie_UserName = new HttpCookie("UserName");

    HttpCookie cookie_PassWord = new HttpCookie("PassWord ");

    cookie_ UserName.Value = tbxUserName.Text;

    cookie_ PassWord.Value = tbxPassWord.Text;

    Response.AppendCookie(cookie_ UserName);

    Response.AppendCookie(cookie_ PassWord);

    Server.Transfer("Test2.aspx");

}

3. 添加Test2页面的Load()事件:

private void Page_Load (object sender, System.EventArgs e)

{

    labUserName.Text = Request.Cookies["UserName"].Value.ToString();

    labPassWord.Text = Request.Cookies["PassWord "].Value.ToString();

}

4. 把Test1设为起始页,运行项目在Test1页面的文本框中输入值后点击按钮,就可以在Test2页面中显Test1页面输入的结果。

 

Session对象变量:
1. Session也是针对每一个用户而言的,是存放在服务器端的 ,Session不仅可以把值传递到下一个页面,还可以交叉传递到多个页面,直至把Session变量的值removed 后,变量才会消失,例如:

2. 新建一个WEB项目,添加两个页面分别命名为Test1和Test2,在Test1页面中添加一个Button命名为btnLogin,再添加两个TextBox分别命名为tbxUserName和tbxPassWord,在Test2页面添加两个Lable分别命名为labUserName和labPassWord,为Test1添加Buttond的Click()事件:

private void btnLogin_Click (object sender, System.EventArgs e)

{

    Session["UserName"]=tbxUserName.Text;

    Session["PassWord"]=tbxPassWord.Text;

    Response.Redirect("Test2.aspx");

}

3. 添加Test2页面的Load()事件:

private void Page_Load (object sender, System.EventArgs e)

{

    labUserName.Text=Session["UserName"].ToString();

    labPassWord.Text=Session["Password"].ToString();

    Session.Remove("UserName"); //清除Session

    Session.Remove("PassWord"); //清除Session

}

4. 把Test1设为起始页,运行项目在Test1页面的文本框中输入值后点击按钮,就可以在Test2页面中显Test1页面输入的结果。

 

Application对象变量:
1. Application对象的作用范围是整个全局,也就是说对所有用户都有效。其常用的方法用Lock和UnLock,例如:

2. 新建一个WEB项目,添加两个页面分别命名为Test1和Test2,在Test1页面中添加一个Button命名为btnLogin,再添加两个TextBox分别命名为tbxUserName和tbxPassWord,在Test2页面添加两个Lable分别命名为labUserName和labPassWord,为Test1添加Buttond的Click()事件:

private void btnLogin_Click (object sender, System.EventArgs e)

{

    Application["UserName"] = tbxUserName.Text;

    Application["PassWord "] = tbxPassWord.Text;

    Server.Transfer("Test2.aspx");

}

3. 添加Test2页面的Load()事件:

private void Page_Load (object sender, System.EventArgs e)

{

    Application.Lock();

    labUserName. Text = Application["UserName"].ToString();

    labPassWord. Text = Application["PassWord "].ToString();

    Application.UnLock();

}

4. 把Test1设为起始页,运行项目在Test1页面的文本框中输入值后点击按钮,就可以在Test2页面中显Test1页面输入的结果。

转载于:https://www.cnblogs.com/Microscope/p/4101777.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/575071.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微信小程序中组件的使用

微信小程序中组件的使用: 微信小程序中组件定义在项目根目录下components文件夹下,在页面使用的时候需要在页面的json文件中声明,如 父组件向子组件传值及子组件向父组件传值: 父组件wxml中:通过属性绑定值的方式向…

mysql允许所有用户连接_Mysql权限控制 - 允许用户远程连接

Mysql为了安全性,在默认情况下用户只允许在本地登录,可是在有此情况下,还是需要使用用户进行远程连接,因此为了使其可以远程需要进行如下操作:一、允许root用户在任何地方进行远程登录,并具有所有库任何操作…

mysql id 不在集合里面_MySQL,PHP:从表中选择*,其中id不在数组中

所以我现在有一个数据库表,我试图选择所有记录,除了包含在我所做的数组中的所有记录。正如一些背景方面:MySQL,PHP:从表中选择*,其中id不在数组中在有问题的数据库表的结构是:server_status:id …

#并行优化# 容错算法 (Fault Tolerant)

容错算法 (Fault Tolerant) 容错算法 (Fault Tolerant) 转载于:https://www.cnblogs.com/daijkstra/p/4105305.html

python人工智能pdf_800G人工智能学习资料:AI电子书+Python语言入门+教程+机器学习等限时免费领取!...

人工智能的热潮在今年再创高峰。无论是政策上还是资本市场上,抑或是我们日常生活中,关于人工智能的消息从未间断,逐渐占据我们每个人的视线。可以看出,人工智能得到了由上至下,国内国外的一致支持。 基于这股热潮&…

mysql rpm 安装多实例_MySQL多实例安装

MySQL多实例安装1、配置3306实例1.1、查询服务器上是否已经安装的mysql[rootmasterMySQL-5.6.25-1.el6.x86_64.rpm-bundle]# rpm -aq | grep mysqlmysql-server-5.1.66-2.el6_3.x86_64mysql-libs-5.1.66-2.el6_3.x86_64mysql-devel-5.1.66-2.el6_3.x86_64qt-mysql-4.6.2-25.el6…

如何保证交叉表编译器和目标系统版本一致_嵌入式系统词汇表

欢迎FPGA工程师加入官方微信技术群点击蓝字关注我们FPGA之家-中国最好最大的FPGA纯工程师社群AASIC(专用集成电路) Application-Specific Integrated Circuit. A piece of custom-designed hardware in a chip. 专用集成电路。一个在一个芯片上定制设计的硬件。address bus (地…

Oracle 以某字段分组,以某字段排序,取前几条

select * from (select row_number() over(partition by 以此字段为分组 order by 以此字段排序 desc rn from dual) where rn1 --表示取第一个 如: id date 1 11/04 1 11/08 1 11/12 2 11/03 2 11/01 结果 id date 1 11/12 2 11/03 SQL select…

mysql手机号11_我用不小心用 mysql 的int(11) 存了 手机号,数据都有问题,有办法恢复么?...

对不起LZ了,这个答案正像Sunyanzi指出的,MySQL不是把高位字节吃掉而是转成了Int的最大值。考虑到原先提交的答案还是花了点心思写的,就还留在这里了,也许对其他高位字节溢出的问题有所帮助。这个有点意思,问题出在int只…

java中Collections、Map集合、HashMap集合、LinkedHashMap集合、Hashtable集合、List/Map/Set接口静态方法of

Collections:集合工具类: Collections是一个集合的工具类,通过此类可以调用操作集合的api,但是只能操作list结合,不能操作set集合,如下: Person类:用于集合存储自定义元素时创建自定义对象&am…

动态定义数组

首先:为什么需要动态定义数组呢? 这是因为,很多情况下,在预编译过程阶段,数组的长度是不能预先知道的,必须在程序运行时动态的给出 但是问题是,c要求定义数组时,必须明确给定数组的…

sql随机抽取数据50条_厉害!苏宁通过citus打造分布式数据库抗住DB高负载

2018-07-16 23:59内容来源:2017 年 10 月 20 日,苏宁云商IT总部资深技术经理陈华军在“PostgreSQL 2017中国技术大会”进行《苏宁citus分布式数据库应用实践》演讲分享。IT 大咖说(微信id:itdakashuo)作为独家视频合作…

mysql四种事务级别_【MySQL 知识】四种事务隔离级别

摘要:本篇文章主要是为了对MySQL的四种事务隔离级别的介绍。为了保证数据库的正确性与一致性,数据库事务具有原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。事务的四种隔离级别根据隔离级别由低到高分别为读未提交(R…

java中Debug调试、异常的概念、异常体系、处理异常的关键字try/catch/finally/throw/throws、多个异常使用捕获并处理的方式、继承关系中处理异常、自定义异常类

Debug调试: bug指程序当中遇到的一些错误异常,Debug指调试bug,找到bug对其解决;debug可以让代码逐行执行,查看代码执行的过程,调试程序中出现的bug或异常。 public class DebugClass {public static void main(Strin…

densenet网络结构_FC-DENSENET用于图像分割学习笔记

近日使用FC Dense Net 做分割,记录学习使用过程。FC-DenseNet 原文链接:https://arxiv.org/abs/1611.09326 《The One Hundred Layers Tiramisu: Fully Convolutional DenseNets for Semantic Segmentation》初次使用此网络,第一眼是被这个名…

mongodb mysql资源占用_如何限制mongodb启动时占用过多内存

默认情况下,mongodb占用的内存大小为:Starting in 3.4, the WiredTiger internal cache, by default, will use the larger of either:50% of RAM minus 1 GB, or256 MB.下面我们来看一下限制mongodb启动时占用内存的方法:新增配置文件 /etc/…

手机网站判断及跳转

现在智能手机上网越来越普遍了,为了获得用户体验增加网站流量,你有必要为你的网站增加一个访问端设备的判断功能,若发现是手机用户访问,则直接跳转到手机站,通过百度的APP site,很容易就可实现这功能。只需…

js ...运算符_「 giao-js 」用js写一个js解释器

前言在这篇文章中,我们将通过 JS 构建我们自己的 JS 解释器,用 JS 写 JS,这听起来很奇怪,尽管如此,这样做我们将更熟悉 JS,也可以学习 JS 引擎是如何工作的!什么是解释器 (Interpreter) ?解释器是在运行时运行的语言求值器,它动态地执行程序的源代码。 解释器解析源代码,从源代…

地区json文件_【小例子】使用jQuery实现省市区三级联动显示,附源码json文件

开发工具-intellij IDEA需求1.实现对json文件的读取。2.可以在省级选择所有省名和直辖市名3.选择一级省名后自动刷新市名4.选择二级市名后自动刷新区名逻辑分析第一步:读取json文件第二步:遍历出所有一级的省名第三步:把遍历出来的省名动态追…

qt 状态栏

有段时间没有写过博客了。假期去上海旅游,所以一直没有能够上网。现在又来到这里,开始新的篇章吧!今天的内容主要还是继续完善前面的那个程序。我们要为我们的程序加上一个状态栏。状态栏位于主窗口的最下方,提供一个显示工具提示…