选择后如何将数据发送到另一个屏幕

时间:2013-12-04 09:47:21

标签: c# javascript asp.net webforms

我有一个页面,如果您点击链接,例如“搜索”它将打开一个搜索页面,然后您可以从gridview中选择一个项目,以便在之前的(父)页面中使用。

我想知道如何将信息发送回父页面,然后刷新父页面以填写其他数据?

我猜它会在后面的代码中动态创建某种javascript吗?

3 个答案:

答案 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数据并在同一页面中接收数据