window.opener.document.getElementById(...)' 为空或不是对

.net里用了一个父窗口和子窗口传值的JS,但父页面却得不到子页面传来的值,很纳闷,报错是说window.opener.document.getElementById('父窗口控件ID名')为空或不是对象。希望高手帮指点:

父页面

<%@ Page Language="C#" MasterPageFile="~/CMSMasterPage.master" AutoEventWireup="true"
Inherits="ManageLogDataList" Title="Untitled Page" CodeBehind="ManageLogDataList.aspx.cs" %>

<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server">
<script type="text/javascript">
function showDialog() {
window.open("UserSearch.aspx");

}

</script>
<asp:TextBox ID="txtUserName" runat="server"></asp:TextBox>
 <asp:Button ID="btnUserSearch" runat="server" Text="U"/>

</asp:Content>


父页面后台

public partial class ManageLogDataList : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{

btnUserSearch.Attributes.Add("onclick", "this.form.target='_blank'");
this.btnUserSearch.Attributes.Add("onclick", "showDialog()");

}

}


子页面:他是父页面点击后重新打开一个新页面,再这个页面里做了一些操作,search了一些数据,然后选定一个值,打算返回给父页面

子页后台


protected void LinkButton_Command(object sender, CommandEventArgs e)
{
string userName = (string)e.CommandArgument;//这个是我再子页面得到的值,需要传到父页的值,这个值已经得到。
Response.Write("<script type='text/JavaScript'> [color=red]window.opener.document.getElementById('<%=txtUserName.ClientID %>'[/color]).value = '" + userName + "';alert(window.opener.location.href);</script>");

}

当我点击子页面上的button触发LinkButton_Command事件时,报错window.opener.document.getElementById('<%=txtUserName.ClientID %>')为空或者不是对象.


当我不清楚到底是哪地方出了问题,所以希望有此方面经验的人多多帮助,谢谢
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值