静态页面的值传递

1两窗口之间存在着关系.父窗口parent.htm打开子窗口son.htm
子窗口可以通过window.opener指向父窗口.这样可以访问父窗口的对象.

优点:取值方便.只要window.opener指向父窗口,就可以访问所有对象.
       不仅可以访问值,还可以访问父窗口的方法.值长度无限制.
缺点:两窗口要存在着关系.就是利用window.open打开的窗口.不能跨域.
      

Post.htm

<input type=text name=maintext>
<input type=button οnclick="window.open('Read.htm')" value="Open">

Read.htm

<script language="javascript" >
//window.open打开的窗口.
//利用opener指向父窗口.
var parentText = window.opener.document.all.maintext.value;
alert(parentText);
</script>


2利用Cookie.Session.Application

Cookie是浏览器存储少量命名数据.
它与某个特定的网页或网站关联在一起.
Cookie用来给浏览器提供内存,
以便脚本和服务器程序可以在一个页面中使用另一个页面的输入数据.

优点:可以在同源内的任意网页内访问.生命期可以设置.
缺点:值长度有限制.

Post.htm

<input type="text" name="txt1">
<input type="button" οnclick="setCookie('baobao',document.all.txt1.value)" value="Post">
<script language="javascript" >
function setCookie(name,value)
{
/*
 *--------------- setCookie(name,value) -----------------
 * setCookie(name,value)
 * 功能:设置得变量name的值
 * 参数:name,字符串;value,字符串.
 * 实例:setCookie('username','baobao')
 * update:2004-6-11 10:30
 *--------------- setCookie(name,value) -----------------
 */
    var Days = 30; //此 cookie 将被保存 30 天
    var exp  = new Date();
    exp.setTime(exp.getTime() + Days*24*60*60*1000);
    document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString();
    location.href = "Read.htm"; //接收页面.
}
</script>


Read.htm

<script language="javascript" >
function getCookie(name)
{
/*
 *--------------- getCookie(name) -----------------
 * getCookie(name)
 * 功能:取得变量name的值
 * 参数:name,字符串.
 * 实例:alert(getCookie("baobao"));
 * update:2004-6-11 10:30
 *--------------- getCookie(name) -----------------
 */
    var arr = document.cookie.match(new RegExp("(^| )"+name+"=([^;]*)(;|$)"));
    if(arr !=null) return unescape(arr[2]); return null;
}
alert(getCookie("baobao"));
</script>


 3URL篇

能过URL进行传值.把要传递的信息接在URL上.

优点:取值方便.可以跨域.
缺点:值长度有限制.

Post.htm

<input type="text" name="username">
<input type="text" name="sex">
<input type="button" οnclick="Post()" value="Post">
<script language="javascript" >
function Post()
{
    //单个值 Read.htm?username=baobao;
    //多全值 Read.htm?username=baobao&sex=male;
    url = "Read.htm?username="+escape(document.all.username.value);
    url += "&sex=" + escape(document.all.sex.value);
    location.href=url;
}
</script>


Read.htm

<script language="javascript" >
/*
 *--------------- Read.htm -----------------
 * Request[key]
 * 功能:实现ASP的取得URL字符串,Request("AAA")
 * 参数:key,字符串.
 * 实例:alert(Request["AAA"])
 * author:wanghr100(灰豆宝宝.net)
 * update:2004-6-11 10:30
 *--------------- Request.htm -----------------
 */
var url=location.search;
var Request = new Object();
if(url.indexOf("?")!=-1)
{
    var str = url.substr(1)  //去掉?号
    strs = str.split("&");
    for(var i=0;i<strs.length;i++)
    {
        Request[strs[i].split("=")[0]]=unescape(strs[i].split("=")[1]);
    }
}
alert(Request["username"])
alert(Request["sex"])
</script>

转载自:http://blog.csdn.net/wanghr100/archive/2004/07/01/PostValue.aspx 

四、使用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 Name
{
get
{
return TextBox1.Text;
}
}

public string EMail
{
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.Name;
Label2.Text=wf1.EMail;

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

祥解:
ASP.NET Server.Transfer()是在两个页面之间进行传值的好方法,从A页面Transfer到B页面时,就可以在B页面通过Context.Handler获得A页面的一个类的实例,从而在B调用A的各个成员对象。

下面的示例建立了WebForm1和WebForm2,通过Server.Transfer()方法演示在WebForm2中读取WebForm1的文本框、读取属性、通过Context传值、调用WebForm1的方法等:

WebForm1上放置一个TextBox1和一个Button1,程序如下:

public class WebForm1 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.TextBox TextBox1;
protected System.Web.UI.WebControls.Button Button1;

private void Page_Load(object sender, System.EventArgs e)
{
Context.Items.Add("Context","Context from Form1");
}
public string Time
{
get{return DateTime.Now.ToString();}
}
public string TestFun()
{
return "Function of WebForm1 Called";
}
#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
InitializeComponent();
base.OnInit(e);
}

private void InitializeComponent()
{
this.Button1.Click += new System.EventHandler(this.Button1_Click);
this.Load += new System.EventHandler(this.Page_Load);

}
#endregion

private void Button1_Click(object sender, System.EventArgs e)
{
Server.Transfer("WebForm2.aspx", true);
}

在WebForm2上放置一个Literal1控件,程序如下:

public class WebForm2 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Literal Literal1;

private void Page_Load(object sender, System.EventArgs e)
{
string strTxt="";
WebForm1 oForm=(WebForm1)this.Context.Handler;
strTxt+="Value of Textbox:"+Request.Form["TextBox1"] +"<br>";
strTxt+="Time Property:"+oForm.Time +"<br>";
strTxt+="Context String:"+Context.Items["Context"].ToString() +"<br>";
strTxt+=oForm.TestFun() +"<br>";
Literal1.Text =strTxt;
}

#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
InitializeComponent();
base.OnInit(e);
}

private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);

}
#endregion
}

补充说明,就是Transfer方法的第二个参数指示是否保留页面的Form和QuerryString的值,你可以试着把它设为False,则在WebForm2中将读不到TextBox1的值。

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

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

相关文章

java类同步_Java中方法,对象,类的同步

关于在多线程环境中使用同步,我需要一些澄清.我在下面有一个小例子类.但我实际上发现很难做出以下内容如何工作的测试用例;我想要测试用例的原因是要了解同步如何处理这些不同的场景>如果一个线程调用SharedResource.staticMethod,它将获取该类的锁.它是否意味着一个SharedR…

ocelot 中间件的变化

ocelot 中间件的变化Intro之前我们使用 ocelot 的时候自定义了一些中间件来实现我们定制化的一些需求&#xff0c;最近博客园上有小伙伴问我怎么使用&#xff0c;他用的版本是 16.0 版本&#xff0c;16.0 和 17.0 版本的差异不是特别大&#xff0c;就以 17.0 版本为例看一下 oc…

mybatis mysql usegeneratedkeys_mybatis中useGeneratedKeys用法--插入数据库后获取主键值

前言&#xff1a;今天无意在mapper文件中看到useGeneratedKeys这个词&#xff0c;好奇就查了下&#xff0c;发现能解决我之前插入有外键表数据时&#xff0c;这个外键获取繁琐的问题&#xff0c;于是学习敲DEMO记录在项目中经常需要获取到插入数据的主键来保障后续操作&#xf…

Istio 知多少 | 下一代微服务的守护者

1. 引言在写完eShopOnContainers 知多少[12]&#xff1a;Envoy gateways后&#xff0c;就一直想进一步探索Service Mesh&#xff0c;最近刚在极客时间上学完《Service Mesh入门》&#xff0c;又大致浏览了一遍官方文档&#xff0c;对Istio也算有了基本的认识。下面就根据自己的…

微软家也会出错

下图是2006年2月8日微软WebCast首页的截图转载于:https://www.cnblogs.com/mssite/archive/2006/02/08/327130.html

mysql 基础视图_MySQL基础(4) | 视图

MySQL基础(4) | 视图基本语法1.创建CREATE VIEW AS 语法说明如下。&#xff1a;指定视图的名称。该名称在数据库中必须是唯一的&#xff0c;不能与其他表或视图同名。&#xff1a;指定创建视图的 SELECT 语句&#xff0c;可用于查询多个基础表或源视图。对于创建视图中的 SELEC…

C# 中的 null 包容运算符 “!” —— 概念、由来、用法和注意事项

在 2020 年的最后一天&#xff0c;博客园发起了一个开源项目&#xff1a;基于 .NET 的博客引擎 fluss&#xff0c;我抽空把源码下载下来看了下&#xff0c;发现在属性的定义中&#xff0c;有很多地方都用到了 null!&#xff0c;如下图所示&#xff1a;这是什么用法呢&#xff1…

[转]不找情人的七种理由(献给已婚的男人)

献给已婚的男人不找情人的七种理由   好像有个曾一度风靡的短信&#xff0c;“结婚是错误,离婚是觉悟,婚外恋是醒悟,再婚是执迷不悟,没有情人是废物,情人太多是动物。”咱不怕犯错误&#xff0c;可没办法不当废物&#xff0c;三十好几还没混上个情人&#xff0c;想起来就惭…

无法初始化java类_myeclip运行java程序不能初始化类 NoClassDefFoundError

引用 3 楼 Menglinyang 的回复:是就这个项目有问题还是所有的都是这样&#xff1f;package cn.itcast.utils;import java.io.InputStream;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.…

C#学习笔记(十四):StatusBar控件

状态栏控件StatusBar<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" />StatusBar的一些常用属性&#xff1a;名称可用性描述BackgroundImage读写可以给状态栏赋予一个图像&#xff0c;显示在背景上。Panels只读这是状态栏上的面板…

微前端架构在容器平台的应用

源宝导读&#xff1a;随着业务的发展&#xff0c;天际-星舟平台未来需要解决与其他云共创共建&#xff0c;跨团队高效协作等诸多问题&#xff0c;而星舟现有的技术架构将难以支撑。本文将介绍星舟平台如何通过向更先进的“微前端”架构演进落地&#xff0c;以应对将来快速增长的…

java八皇后问题穷举算法_穷举法和回溯法解n皇后问题

八皇后问题是一个以国际象棋为背景的问题&#xff1a;如何能够在88的国际象棋棋盘上放置八个皇后&#xff0c;使得任何一个皇后都无法直接吃掉其他的皇后&#xff1f;为了达到此目的&#xff0c;任两个皇后都不能处于同一条横行、纵行或斜线上。八皇后问题可以推广为更一般的n皇…

Microsoft PHP.Net ?

居然发现老外有个项目在把PHP搞成象。NET那样咯&#xff0c;核心是Framework 上把 PHP 编译为MSIL。居然见http://www.php-compiler.net/&#xff0c;而且今年居然还FINAL 1.0出来了&#xff0c;这对象把PHP放到.NET平台上来的人说是好消息。20 February 2006: Phalanger versi…

巧用 Lazy 解决.NET Core中的循环依赖关系

原文作者: Thomas Levesque 原文链接&#xff1a;https://thomaslevesque.com/2020/03/18/lazily-resolving-services-to-fix-circular-dependencies-in-net-core/循环依赖的问题在构建应用程序时&#xff0c;良好的设计应该应避免服务之间的循环依赖, 循环依赖是指某些组件直接…

绝句

新世纪“绝”句上联:男生&#xff0c;女生&#xff0c;穷书生&#xff0c;生生不息&#xff01; 下联:初恋&#xff0c;热恋&#xff0c;婚外恋&#xff0c;恋恋不舍!横批&#xff1a;生无可恋 上联:博士生&#xff0c;研究生&#xff0c;本科生&#xff0c;生生不息&#xff…

java的编译器怎么出来_怎样掌握ava编译器的使用,教程在这里,如何进行Java初级学习...

原标题&#xff1a;怎样掌握ava编译器的使用&#xff0c;教程在这里&#xff0c;如何进行Java初级学习Java的学习中&#xff0c;并没有那么的繁琐&#xff0c;只需要我们逐步掌握&#xff0c;就能够发觉java是全世界最好的编程语言之一。那么今天就带领大家进行简单的JAVA初级学…

小试elsa

最近工作需要&#xff0c;在调研BMP产品&#xff08;开源和商用&#xff09;&#xff0c;重点了解了activiti和它的商业产品Alfresco Process Services&#xff0c;这是java的体系&#xff0c;成熟&#xff0c;完善(三方开源库是java多年开源积累下的最宝贵的财富)&#xff0c;…

如何判断当面的网页加载完成?

if(document.readyStatecomplete){ window.alert(加载完成&#xff01;); } 转载于:https://www.cnblogs.com/MaxIE/archive/2006/03/24/357504.html

java抠图人物背景图片_如何进行人物抠图?让你快速完成复杂背景人像的在线抠图...

大多数男生心目中都有一个女神&#xff0c;虽然在其他人眼中不过是普通人&#xff0c;但是在自己眼中她怎么看怎么有魅力。当然对于女神提出的各种各样的“要求”或是请求&#xff0c;你们定然是不会轻易拒绝的。但若是女神需要你帮忙抠图&#xff0c;你知道如何进行人物抠图吗…

如何在 C# 中使用 MSMQ

MSMQ 是 Windows 自带的消息队列&#xff0c;它提供了在多机器&#xff0c;多系统之间实现可靠的消息互联&#xff0c;MSMQ 支持可扩展&#xff0c;线程安全&#xff0c;使用简单等强势特性。MSDN 上说&#xff1a;消息队列技术使不同时刻运行的程序可以在异构网络或者异构系统…