我有一个页面,如果您点击链接,例如“搜索”它将打开一个搜索页面,然后您可以从gridview中选择一个项目,以便在之前的(父)页面中使用。
我想知道如何将信息发送回父页面,然后刷新父页面以填写其他数据?
我猜它会在后面的代码中动态创建某种javascript吗?
答案 0 :(得分:0)
window.opener
是打开当前窗口的窗口。
因此,如果从某个页面弹出临时窗口,则可以使用弹出窗口中的window.opener引用该页面中的上一页对象或全局变量,以将数据放回父窗口。
由于浏览器中存在各种弹出限制,目前大多数网络应用都会避免弹出窗口。相反,人们倾向于在同一个窗口中使用叠加层,而不会遇到弹出窗口阻止程序。
例如,从弹出窗口中,您可以执行以下操作:
window.opener.document.getElementById("result") = myHTML;
或:
window.opener.searchData.choice = "foo";
或:
window.opener.myFunc(data);
答案 1 :(得分:0)
我看到的最好方法是从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
}
答案 2 :(得分:0)
当你更改输入值时,使用popup div显示必要的2个步骤:发送ajax数据并在同一页面中接收数据