【发布时间】:2013-12-04 09:47:20
【问题描述】:
我有一个页面,如果您单击链接,例如'search' 它将打开一个搜索页面,然后您可以从 gridview 中选择一个项目以在上一个(父)页面中使用。
我想知道如何将信息发送回父页面,然后刷新父页面以填写其他数据?
我猜它会是某种在后面的代码中动态创建的 javascript?
【问题讨论】:
标签: c# javascript asp.net webforms
我有一个页面,如果您单击链接,例如'search' 它将打开一个搜索页面,然后您可以从 gridview 中选择一个项目以在上一个(父)页面中使用。
我想知道如何将信息发送回父页面,然后刷新父页面以填写其他数据?
我猜它会是某种在后面的代码中动态创建的 javascript?
【问题讨论】:
标签: c# javascript asp.net webforms
window.opener是打开当前窗口的窗口。
因此,如果您从某个页面弹出一个临时窗口,您可以使用弹出窗口中的 window.opener 来引用该页面中的前一个页面对象或全局变量,以将数据放回父窗口。
由于浏览器中存在各种弹出窗口限制,如今大多数网络应用都避免弹出窗口。相反,人们倾向于在同一个窗口中使用不会与弹出窗口阻止程序发生冲突的叠加层。
例如,在弹出窗口中,您可以执行以下操作:
window.opener.document.getElementById("result") = myHTML;
或:
window.opener.searchData.choice = "foo";
或:
window.opener.myFunc(data);
【讨论】:
当你改变输入的值时,使用弹出的div显示,必要的2个步骤:发送ajax数据和在同一页面中接收数据
【讨论】:
我看到的最好的方法是从 opener 调用父函数 我不知道哪个 html 有你的弹出页面,但可能是这样的:
//child
...
<table>
<tr>
<td>item 100</td> <td><input type="button" id="searchResult100" onclick="updateParent(100)"></td>
</tr>
</table>
...
function updateParent(id){
if(window.opener){
window.opener.updateData(id);
window.close();
}
}
我不知道您想如何使用在弹出窗口中选择的 ID,您可以隐藏所有具有不同 ID 的结果或将 id 放在某个隐藏字段中,然后回发以使用后面代码中的 ID。需要有关目的的更多信息。
//parent
...
function updateData(searchId){
// use searchId to update
}
【讨论】: