请教各位一个getElementById的问题 关于子页面回传值
在正常情况下,A.aspx 打开 B.aspx页面 (window.open方式)
B页面向A页面中的TextBox1控件回传值的时候这样写(在.cs文件中)
<script>self.opener.document.FormA.TextBox1.value="值"</script>
现在的情况是,A是一个用户控件,即A.ascx,并且A是在母板页中
那么现在重复上面的动作
A.ascx 打开 B.aspx页面 (window.open方式)
这回B页面向A页面中的TextBox1控件回传值的时候这样写(在.cs文件中)
<script>self.opener.document.getElementById(\"TextBox1.Client\").value="值"</script>
在执行操作的时候报错:“对象不支持此属性或方法”
请问是什么原因,如果我的写法不对请纠正,谢谢各位JavaScript达人
问题点数:50、回复次数:8Top
1 楼purexiafeng(下风)回复于 2006-12-04 16:56:23 得分 0
不关用户控件的事,JS是控制的前台代码Top
2 楼scow(怡红快绿之小橙子|和谐权是第4代人权)回复于 2006-12-04 16:58:06 得分 50
直接写写不出来, 有两个办法.
1. 查看A.ascx 所在页面的, 得到TextBox1的, 例如ct100_xxx,
<script>self.opener.document.getElementById("ct100_xxx").value="值"</script>
2. 打开B.aspx时, 把TextBox1.ClientID传过去, 在后台定义个变量或属性(txtid)接收这个值,
<script>self.opener.document.getElementById('<%=this.txtid%>').value='值'</script>Top
3 楼scow(怡红快绿之小橙子|和谐权是第4代人权)回复于 2006-12-04 16:58:36 得分 0
1. 查看A.ascx 所在页面的html, 得到TextBox1的id, 例如ct100_xxx,Top
4 楼purexiafeng(下风)回复于 2006-12-04 16:59:29 得分 0
你可以等A页面生成HTML以后,查看TextBox1估计控件的ID。他的ID估计是
用户控件名:+_+TextBox1Top
5 楼purexiafeng(下风)回复于 2006-12-04 17:00:17 得分 0
ID不对。,晕,楼上星星跟我枪分Top
6 楼yzbsd(future)回复于 2006-12-04 17:00:49 得分 0
<script>self.opener.document.getElementById(\"TextBox1.Client\").value="值"</script>
改为如下:
<script>self.opener.formName.TextBox1.value="值"</script>
formName是form的ID,TextBox1是textbox的id
Top
7 楼qhfrose(飞羽)回复于 2006-12-04 17:03:51 得分 0
<script>self.opener.document.getElementById(\"TextBox1.ClientID\").value="值"</script>
应该是这样吧Top
8 楼kdg2000(小刚)回复于 2006-12-05 08:49:37 得分 0
回scow(怡红快绿)
我昨天用的应急办法就是使用查看原文件后的id,是直接写死在代码里的,如果将来有变化就惨了
不过你的第二个方法值得考虑,不错
回yzbsd(future)
请仔细看我问问题时的说明Top




