如何在asp.net中的卸载事件之前分配值

时间:2011-07-29 04:56:20

标签: c# javascript asp.net html

您好我想从弹出窗口中将两个字符串值分配回父窗口,打开弹出窗口。

我在父窗口和子窗口中将两个隐藏字段作为runat服务器, 并在按钮单击事件上我将这些隐藏字段分配给某些文本值

/*(Hidden field 1 ->)*/     c_value.Value = Treeview.SelectedNode.Parent.Value;
/*(Hidden field 2 ->)*/     c_text.Value = "File selected";

并在body卸载事件中,我通过javascipt

将这些值分配给父的隐藏字段

(HTML)

<script>
  function assgin()
    {    

     window.opener.document.getElementById("ctl00_ContentPlaceHolder1_p_value").value = document.getElementById('c_value').value;

     window.opener.document.getElementById('ctl00_ContentPlaceHolder1_p_text').value = document.getElementById('c_text').value;

</script>   

<body onunload="assign()">

但是当我尝试在父表单上获取这些值时,它显示为空。

我不明白为什么这些值变空可能是由于onunload事件,如果这是原因然后告诉我哪个事件我将这些值分配给父窗体。我想在关闭子窗口之前分配这些值。

1 个答案:

答案 0 :(得分:0)

也许你的问题是由于“assgin()”函数的错误造成的。但如果没有,这是一个适合我的小例子。注意:您无法在本地磁盘上对此进行测试,因为在这种情况下,出于安全原因,浏览器将阻止访问window.opener。

parent.html

<input type="button" onclick="window.open('popup.html','My Popup')" value="Open popup" />
<br/>
Result from popup: <input type="text" id="result" />

popup.html

<script>
function assign() {
    window.opener.document.getElementById("result").value = document.getElementById("mystring").value;
}
</script>
<body onunload="assign()">
    Enter string and close the popup: <input type="text" id="mystring" />
<body>