如何在另一个页面的页面中存在一个调用方法?

时间:2009-03-10 11:39:28

标签: asp.net asp.net-ajax

我正在处理一个页面,其中以模态方式从其中打开其他页面。 我需要在opener页面中调用函数来更新其中的某些控件。

我正在使用window.open打开另一个窗口,但在这种情况下,打开页面的Page.PreviousPage为null。

我正在使用

<%@ PreviousPageType VirtualPath="~/PreviousPage.aspx" %>

参考上一页。

有什么建议吗?

仅供参考:所有aspx页面都支持AJAX。

2 个答案:

答案 0 :(得分:2)

您无法在Page类后面的代码中调用方法来更新显示的页面中的控件。 Page类的实例仅在呈现页面时存在,一旦页面在浏览器中显示,Page对象不再存在。

当您从一个页面发布帖子到另一个页面时使用PreviousPage属性,但它不包含用于呈现页面的Page对象,它包含重新创建的Page对象这将不会用于渲染任何东西。您只能使用它根据从中发布的信息从字段中读取信息。

如果要更新开启者页面,您必须使用Javascript()在客户端进行更新,或者重新加载页面以便服务器端代码可以重新填充它。两者的结合都是使用AJAX来更新页面。

编辑:
例如,您可以使用Javascript访问开启者并更改元素的内容:

window.opener.document.getElementById('Info').innerHTML = 'updated';

您还可以在开启页面中调用Javascript函数:

window.opener.doSomething('data');

为您提供更多可能性,例如进行AJAX调用以从服务器加载数据。

答案 1 :(得分:1)

您可以使用javascript将父页面提交回服务器。您可以在javascript中使用window.opener函数来访问父页面。