问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

.net的WEB窗体中子页面有哪些方法可以获取和设置父页面的值

发布网友 发布时间:2022-05-02 05:26

我来回答

4个回答

热心网友 时间:2022-04-26 05:44

1. 最常见的就是用超连接或者是Response.Redirect方法从一个页面转到另一个页面,这时候你在新页面中要获取父页面中的值时,必须是从URL中传值过来,也就是说使用Get方法传值的。这样传值有以下缺点:
a)所传值必须跟在URL后面,这样的数据不安全。
b)由于URL的长度有限,所以传的值也是有限的。
所以要想传递大量的数据,就必须用post来传值。因此我们想到了第二种传值的方式:

2. 用Server.transfer(URL) 来实现页面的跳转。
Server.transfer()
与Response.Redirect最大的不同就是,Response.Redirect实际上就像在地址栏里面重新输入了要跳转页面的地址,所以他是
不保存之前页面的信息的。但是Server.transfer()完全不同,Server.transfer()就是像是在服务器端重新显示你要转到的页
面,但此前页面的信息都还保存在服务器。因此在新的页面上你仍可以得到之前页面的值。在.net中可以使用PreviousPage来得到之前页面的
Page对象。这样有了Page对象你就方便的可以得到该页面上的任何值了。比如:我要找之前页面上的ID=TextBox1的值,语句为:

((TextBox)PreviousPage.FindControl("TextBox1")).Text

但是上面的两种方式都是转到,之前的页面就不显示了。有的时候还有打开子窗口但是父窗口仍然存在的情况,就像我在讲__postBack()方法中的那样,子窗口是在父窗口中弹出来的。
让子窗口从父窗口中弹出,很容易让人想到的是用JAVAScript方法。
打开一个窗口的JAVAScript方法有两种:window.open(); window.showdialog()
如果在使用这两种方法打开的子窗口中获取父窗口的值,当然也有两种把值跟在URL之后传过来和直接获取父窗口的对象来取值。
对于第一种方法取值,很简单。直接使用QueryString就可以取到了。但是如上面所说这种Get传值的方式有缺点。
下面我们分别来讨论下两种方法分别通过获取父页面对象来取值得方法。
1.

使用window.open(url)来打开一个子窗口,在子窗口中获取父窗口的对象其实很简单,直接使用window.opener就可以得到父窗口的
对象,我们也是用这个方法在子窗口中调用父窗口的__postBack()方法的。比如我要获得父窗口中ID=“TextBox1”的textbox的
值。代码如下:

<script language="javascript">
var text = window.opener.document.getElementById("TextBox1").value;
alert(text);
</script>

2.使用window.showModalDialog()方法来弹出一个子窗口时,若想得到父窗口中的值,仍
旧使用window.opener是得不到父窗口对象的。这里我们就要在showModalDialog()方法中传入window参数。然后在子窗口中
得到这个代表父窗口的window,这样就可以随便操作父窗口中的值了。
脚本如下:
在父窗口中,假如我们是在服务器控件中调用javascript代码的,你可以这样写:
Page.ClientScript.RegisterStartupScript(this.GetType(), "test", "window.showModalDialog('Default4.aspx',window)", true);
Default4.aspx
就是子窗口的页面。这里要注意不能使用Page.ClientScript.RegisterClientScriptBlock()因为Block方法
会把该script脚本写在所有控件的前面,这样在页面被加载时,TextBox1控件还没有被加载,子窗口就打开了,所以在子窗口时取不到任何控件的值
的。而RegisterStartupScript()方法正好相反,他是把对应Script脚本写在所有控件的后面,所以子窗口能够得到父窗口的任何控
件的值。
如果你是在客户端写的JavaScript脚本,那就更简单了

<script language="javascript">
function popwindow()
...{
window.showModalDialog('Default4.aspx',window);
}
</script>

在子窗口中可写入如下脚本:

<script language="javascript">
var vwin = window.dialogArguments; //得到window参数
var doc = vwin.document.getElementById("TextBox1").value; //获得TextBox的值
alert(doc);
</script>

热心网友 时间:2022-04-26 07:02

这啥 @jianju3800

热心网友 时间:2022-04-26 08:37

1.url 方式
2.cookie
3.session
至少有上面三种

热心网友 时间:2022-04-26 10:28

这是技术问题!谢您抬爱!爱莫能助!
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
双人沙发的一般尺寸是多少 双人沙发的标准尺寸是多少 双人沙发的常规尺寸是多少 一般的双人沙发的尺寸是多少 2人沙发标准尺寸是多少 面对此等形势与挑战,我们又该如何应对? 大量国央企数科公司成立,传统软件公司如何应对 造梦西游OL 造梦西游ol 80级以后该干嘛? 西铁城走心机程序更新失败 房子满二是指多久 javascript 调用另一个页面的方法 摄入太多糖分有什么害处? ...他们不是父子关系 如何实现他们之间的js的调用 手机wifi有叹号已连接不可上网 js实现跨页面(父子页面)操作. 父子JS之间调用 javascript怎么在父窗体接受子窗体returnValue的值 蔗糖有什么危害? 2000.2.16是什么星座 人们摄入过多的蔗糖有什么危害 蔗糖摄入过多的危害主要是 16/10.7kpa 中16和10.7是什么意思 16的英语 16的因数有哪些? 筒骨汤怎么做 筒骨和什么一起煲汤 筒骨搭配什么煲汤好 七年级上册语文常考的文言文阅读 常见的文言文有那些? 语文考试中,你觉得哪一句文言文是经常考到的? 蔗糖摄入过 多有什么危害,妙飞0蔗糖奶酪棒是无糖吗? c#关于父子窗体属性的调用 js window.opener 子页面 父页面 传值 172.16.0.0/16 和172.16.0.0/12的具体区别是什么 JavaScript怎么触发另一个页面的方法(框架) 字长为16和16位有什么区别? 吃糖多了有什么坏处 深圳别墅装修公司报价和公司推荐 北面1996羽绒服有中国制造吗 工行没开网上银行怎么查询余额 红米note9pro手势拍照怎么用 plsql的初级问题求帮忙啊~! 没办理网上银行,能直接查询帐号余额吗 怎么算八字缺什么的 北面1996黑色为什么没货 科学技术对教育有什么影响? note9Proai打开相机是什么 note9pro拍照怎么调 怎么根据八字判断五行缺什么忌什么 红米note9pro录像怎么调变焦