子窗口获取父窗口的值:
子窗口中前台加了HiddenField控件来存放父窗口的textbox控件中的值子窗口的前台代码,如下:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="ViewUserTopMes.aspx.cs" Inherits="ViewUserTopMes" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>无标题页</title>
<script type="text/jscript" language="javascript">
function GetParentValue()
{
document.getElementById("HiddenField1").value =parent.document.getElementById("TxtReachUser").value;
}
</script>
</head>
<body >
<form onclick="GetParentValue()">
<asp:HiddenField ID="HiddenField1" runat="server" /> <asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" />
</form>
</body>
</html>
字界面的CS代码
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;public partial class ViewUserTopMes : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Response.Write("<script>alert('" + HiddenField1.Value.ToString() + "')</script>");
}
protected void Button1_Click(object sender, EventArgs e)
{
Response.Write("<script>alert('" + HiddenField1.Value.ToString() + "')</script>");
}
} 问题是:Page_Load中获取不到HiddenField1.Value中的值,页面加载后,点击Button1后,才能看到HiddenField1.Value中的值,请问有没有好的办法,能子窗口加载的时候 获取HiddenField1.Value的值,
子窗口中前台加了HiddenField控件来存放父窗口的textbox控件中的值子窗口的前台代码,如下:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="ViewUserTopMes.aspx.cs" Inherits="ViewUserTopMes" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>无标题页</title>
<script type="text/jscript" language="javascript">
function GetParentValue()
{
document.getElementById("HiddenField1").value =parent.document.getElementById("TxtReachUser").value;
}
</script>
</head>
<body >
<form onclick="GetParentValue()">
<asp:HiddenField ID="HiddenField1" runat="server" /> <asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" />
</form>
</body>
</html>
字界面的CS代码
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;public partial class ViewUserTopMes : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Response.Write("<script>alert('" + HiddenField1.Value.ToString() + "')</script>");
}
protected void Button1_Click(object sender, EventArgs e)
{
Response.Write("<script>alert('" + HiddenField1.Value.ToString() + "')</script>");
}
} 问题是:Page_Load中获取不到HiddenField1.Value中的值,页面加载后,点击Button1后,才能看到HiddenField1.Value中的值,请问有没有好的办法,能子窗口加载的时候 获取HiddenField1.Value的值,
换成onload吧 或者直接就在
<asp:HiddenField ID="HiddenField1" runat="server" />下面写JS代码 不用事件触发
window.onload=function()
{}或Page_Load 调用JS函数
alert(hidden.value);
})()
<head runat="server">
<title>无标题页</title>
<script type="text/jscript" language="javascript">
function GetParentValue()
{
document.getElementById("HiddenField1").value =parent.document.getElementById("TxtReachUser").value;
}
</script>
</head>
<body >
<form onclick="GetParentValue()">
<asp:HiddenField ID="HiddenField1" runat="server" /> <asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" />
</form>
</body>
</html>这个是 在 form 加载成功后才取父窗口的值 放到隐藏域中。,所以在pageLoad 页面没加载成功的。因此还没有执行js 所以取不到值。
而onclick 的时候才取到。解决方案:
-。如果值不大,在父窗口打开子窗口时可以通过 网址传参的形式将内容传到子窗口
二。也可以通过session 来存储值。打开窗口的时候将值存放在session中。然后。在打开子窗口。子窗口直接从session中取值。
三。可以通过post 将数据的值post到子窗口中。