子窗口获取父窗口的值:
子窗口中前台加了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的值,

解决方案 »

  1.   

    事件怎么写 form的 onclick里了!!!
    换成onload吧 或者直接就在
    <asp:HiddenField ID="HiddenField1" runat="server" />下面写JS代码 不用事件触发 
      

  2.   

    <body onload="GetParentValue()">
      

  3.   

    body onload="GetParentValue()"
    window.onload=function()
    {}或Page_Load 调用JS函数
      

  4.   

    (function(){
     alert(hidden.value);
    })()
      

  5.   

    <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>这个是 在 form  加载成功后才取父窗口的值 放到隐藏域中。,所以在pageLoad 页面没加载成功的。因此还没有执行js 所以取不到值。
    而onclick 的时候才取到。解决方案:
    -。如果值不大,在父窗口打开子窗口时可以通过 网址传参的形式将内容传到子窗口
    二。也可以通过session 来存储值。打开窗口的时候将值存放在session中。然后。在打开子窗口。子窗口直接从session中取值。
    三。可以通过post 将数据的值post到子窗口中。