1、hidden变量
<form id="Form1" method="post" runat="server">
    <input name="Test" type="hidden" value="">
</form>

<script language="javascript">
    document.forms["Form1"].Test.value = "12345678";
</script>

确认页面:
if (Request.Params["Test"] != null)
{
    Request.Params["Test"];
}

2、地址栏传递:
Server.Transfer(“xxx.aspx?id=1”);
window.open(“xxx.aspx?id=1”,”目标窗口的名称”)

xxx.aspx:
if (Request.QueryString["id"] != null)
{
    Request. QueryString["id"];
}

3、session传递:
4、cookies

页面之间参数的传递二:
用页面cookie,页面cookie页面关了就不存在了,或者用server.transfer
使用QueryString
使用QuerySting在页面间传递值已经是一种很老的机制了,这种方法的主要优点是实现起来非常简单,然而它的缺点是传递的值是会显示在浏览器的地址栏上的(不安全),同时又不能传递对象,但是在传递的值少而安全性要求不高的情况下,这个方法还是一个不错的方案。使用这种方法的步骤如下:
1,使用控件创建web表单(form)
2,创建可以返回表单的按钮和链接按钮
3,在按钮或链接按钮的单击事件里创建一个保存URL的字符变量
4,在保存的URL里添加QueryString参数
5,使用Response.Redirect重定向到上面保存的URL
下面的代码片断演示了如何实现这个方法:
源页面代码:
private void Button1_Click
(object sender, System.EventArgs e)
{
string url;
url="anotherwebform.aspx?name=" + TextBox1.Text + "&email=" + TextBox2.Text;
Response.Redirect(url);
}
目标页面代码:
private void Page_Load
(object sender, System.EventArgs e)
{
Label1.Text=Request.QueryString["name"];
Label2.Text=Request.QueryString["email"];
}

使用Session变量
使用Session变量是可以在页面间传递值的的另一种方式,在本例中我们把控件中的值存在Session变量中,然后在另一个页面中使用它,以不同页面间实现值传递的目的。但是,需要注意的是在Session变量存储过多的数据会消耗比较多的服务器资源,在使用session时应该慎重,当然了,我们也应该使用一些清理动作来去除一些不需要的session来降低资源的无谓消耗。使用Session变量传递值的一般步骤如下:
1,在页面里添加必要的控件
2,创建可以返回表单的按钮和链接按钮
3,在按钮或链接按钮的单击事件里,把控件的值添加到session变量里
4,使用Response.Redirect方法重定向到另一个页面
5,在另一个页面提取session的值,在确定不需要使用该session时,要显式清除它
下面的代码片断演示了如何实现这个方法:
源页面代码:
private void Button1_Click
(object sender, System.EventArgs e)
{
//textbox1 and textbox2 are webform
//controls
Session["name"]=TextBox1.Text;
Session["email"]=TextBox2.Text;
Server.Transfer("anotherwebform.aspx");
}
目标页面代码:
private void Page_Load
(object sender, System.EventArgs e)
{
Label1.Text=Session["name"].ToString();
Label2.Text=Session["email"].ToString();
Session.Remove("name");
Session.Remove("email");
}

使用Server.Transfer
这个方法相比上面介绍的方法稍微复杂一点,但在页面间值传递中却是特别有用的,使用该方法你可以在另一个页面以对象属性的方式来存取显露的值,当然了,使用这种方法,你需要额外写一些代码以创建一些属性以便可以在另一个页面访问它,但是,这个方式带来的好处也是显而易见的。总体来说,使用这种方法是简洁的同时又是面向对象的。使用这种方法的整个过程如下:
1,在页面里添加必要的控件
2,创建返回值的Get属性过程
3,创建可以返回表单的按钮和链接按钮
4,在按钮单击事件处理程序中调用Server.Transfer方法转移到指定的页面
5,在第二个页面中,我们就可以使用Context.Handler属性来获得前一个页面实例对象的引用,通过它,就可以使用存取前一个页面的控件的值了
以下代码综合实现上述步骤过程的代码:
源页面代码:
把以下的代码添加到页面中
public string Name
{
get
{
return TextBox1.Text;
}
}

public string EMail
{
get
{
return TextBox2.Text;
}
}
然后调用Server.Transfer方法
private void Button1_Click
(object sender, System.EventArgs e)
{
Server.Transfer("anotherwebform.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.Name;
Label2.Text=wf1.EMail;
}

转载于:https://www.cnblogs.com/jillzhang/archive/2006/04/12/373565.html

页面之间传递参数得几种方法相关推荐

  1. Asp.net页面之间传递参数的几种方法

    Asp.net页面之间传递参数的几种方法 第一种方法: 通过URL链接地址传递Request.QueryString send.aspx:    protected void Button1_Clic ...

  2. Asp.net页面之间传递参数的几种方法荟萃

    第一种方法: 通过URL链接地址传递  send.aspx:   protected void Button1_Click(object sender,EventArgs e)     {       ...

  3. ASP.NET页面之间传递值的几种方式

    页面传值是学习asp.net初期都会面临的一个问题,总的来说有页面传值.存储对象传值.ajax.类.model.表单等.但是一般来说,常用的较简单有QueryString,Session,Cookie ...

  4. 经典面试题(三):ASP.NET部分----ASP.NET 页面之间传递值的几种方式

    ASP.NET 页面之间传递值的几种方式 1.使用QueryString,  如....?id=1; response. Redirect().... 2.使用Session变量. 3.使用Serve ...

  5. 窗体之间传递值的几种方法

    窗体之间传递值的几种方法 场景如下: 我有一个mainFrm(父窗体), 一个subFrm(子窗体) 点击父窗体的按钮启动子窗体,点击子窗体的按钮可以给父窗体设置值.如下图 第一种方法:启动子窗体,将 ...

  6. 在两个静态HTML页面之间传递参数的一个方法

    一个大型的监控平台,需要集成H3C的视频监控系统,集成的方式是通过静态页面.H3C提供一个页面的控件,直接在页面通过JS脚本调用.需要给这个控件传递一个摄像机的编号,传递后,页面的控件便显示出该摄像机 ...

  7. jmeter跨线程组传多个值_Jmeter 跨线程组传递参数 之两种方法(转)

    终于搞定了Jmeter跨线程组之间传递参数,这样就不用每次发送请求B之前,都需要同时发送一下登录接口(因为同一个线程组下的请求是同时发送的),只需要发送一次登录请求,请求B直接用登录请求的参数即可,直 ...

  8. jsp传递参数的四种方法

    1.form表单 2.request.setAttribute();和request.getAttribute(); 3.超链接:<a herf="index.jsp"?a= ...

  9. Django通过URL传递参数的4种方法

    [转自ian的个人博客]http://www.icodelogic.com/?p=501 感谢ian的总结! 1 无参数情况 配置URL及其视图如下: (r'^hello/$', hello)  de ...

最新文章

  1. oracle 函数to_char(数据,'FM999,999,999,999,990.00') 格式化数据
  2. Java:异常处理的一些注意事项
  3. 网络请求的基本知识《极客学院 --AFNetworking 2.x 网络解析详解--1》学习笔记...
  4. esp32 cam工作电流_我如何在家工作:Cam的生产力之痛
  5. 系统架构师学习笔记-软件架构设计
  6. Android-构建不同环境的Apk
  7. 安卓案例:利用帧动画实现游戏特效
  8. lstm原始论文_RNN及其改版(LSTM, 双向RNN, seq2seq)总结
  9. 全面解析Java的垃圾回收机制(转)
  10. Leetcode每日一题:845.longest-mountain-in-array(数组中的最长山脉)
  11. linux清理缓存_[ERROR] Linux 的 No space left on device(磁盘空间不足)
  12. mysql基础知识(二)
  13. php数组的概述及分类与声明
  14. 鸿蒙能兼容java吗,鸿蒙系统能不能兼容windows的所有应用软件?
  15. 停止运行_部门动态丨供水运行不能中断,保障维修从未停止
  16. 如何做好测试用例设计
  17. H5 pc 手机端 web 模板 easyUI uimaker 最新版
  18. List集合排序及去重
  19. HD2直刷WP7系统教程及详细说明【ROM+直刷驱动+内存卡工
  20. jeDate—选择日期后,再点开重新选择时间,日期会被置为今日日期

热门文章

  1. c语言实现输入输出功能需要调用库函数,C语言学习笔记(二)
  2. java android 打地鼠_Android实现打地鼠小游戏
  3. axis2生成客户端代码_利用ApiPost一键、快速生成接口文档!女猿也过38节!
  4. javascript Blob
  5. python socket epoll
  6. Java SSM 与 SpringBoot
  7. opencv-api drawKeypoints drawMatches
  8. tesseract 配置文件
  9. matplotlib xticks yticks
  10. Pandas 文本数据方法 split()rsplit()