.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 %>')为空或者不是对象.
当我不清楚到底是哪地方出了问题,所以希望有此方面经验的人多多帮助,谢谢
父页面
<%@ 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 %>')为空或者不是对象.
当我不清楚到底是哪地方出了问题,所以希望有此方面经验的人多多帮助,谢谢