我正在处理一个页面,其中以模态方式从其中打开其他页面。 我需要在opener页面中调用函数来更新其中的某些控件。
我正在使用window.open打开另一个窗口,但在这种情况下,打开页面的Page.PreviousPage为null。
我正在使用
<%@ PreviousPageType VirtualPath="~/PreviousPage.aspx" %>
参考上一页。
有什么建议吗?
仅供参考:所有aspx页面都支持AJAX。
答案 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函数来访问父页面。