100 分!!用 window.open 打开子窗口,点击子窗口上的按钮,如何把子窗口的数据传回到父窗口?
前提是父窗口的text框在DataGrid的模板列里.
下面的语句在非模板的text框中正常
window.opener.document.forms[0].txtCompanyName.value = ID;
我又尝试用下面的语句,报找不到对象
window.opener.document.getElementById( 'txtCompanyName ').value=ID;
------解决方案--------------------检测设置了ID属性了吗?
然后,window.parent.document.getElementById( 'textCompanyName ').value = ID;
------解决方案--------------------window.open()这样写:
window.open( "xx.aspx?id= <%=textCompanyName.ClientID%> ")
最好写个函数,多次调用
function w(sID)
{
window.open( "xx.aspx?id= " + sID)
}
这样,你就可以这样传递
in xx.aspx
<script>
var sid = " <%=Request.QueryString[ "sID "]%> "
</script>
传递
window.opener.document.getElementById(sid).value = "xxxxxxxx ";
再次提醒:
模板列中的 textCompanyName的id是变化的,不能按照你原来的方法作
------解决方案--------------------由于是模板,可能一个页面有许多textbox,你 要清楚传递到哪个
你应当在绑定事件里,输出text 'txtCompanyName '.ClientID
道理就是这样的,具体运用看你的使用需求,灵活运用
------解决方案--------------------在DataGrid中的 textbox的Id实际上
在.net 输出成html代码的时候 是被 添加后缀已保证 唯一的
以为你给datagrid里面的text定义id的时候实际只定义了一个
但是datagrid输出的数据 则很可能是很多条数据
由于html页面中的 id必须唯一 所以datagrid为它添加了后缀 已区别..
你那样找 当然 那个id是不存在的了..
你可以看输出后的html 看它添加了什么 用新的ID即可