有没有人知道我如何在弹出页面上的操作中重新加载我的父C#页面上的UpdatePanel而不刷新整个父页面。我的父页面不会在Url中保留其状态,因此用户可能在此处展开了div,在那里刷新了一个列表,并且需要保留该父页面状态。所有需要发生的事情是,当用户在弹出窗口中添加新事件时,包含GridView为“DomainObjects.Incident”的UpdatePanel应该更新/刷新。
有没有办法在两个不同的asp.net页面之间连接事件?或者我应该使用javascript吗?
答案 0 :(得分:3)
完全由.net代码管理的唯一方法是使用类似AjaxControlToolkit的东西使弹出窗口成为主页面中的模态div。
否则,您可以在子页面和父页面中使用javascript来触发父页面中的一些回发/回调。您可以将回发/回调事件设置为更新面板的触发器。
答案 1 :(得分:1)
您可以通过调用:
刷新UpdatePanel__doPostBack('<UpdatePanel ID>', '');
如果您想从子页面执行此操作,您应该能够在函数中包装调用并通过JavaScript调用它。
示例:
// Parent Page Refresh Function
function Refresh()
{
__doPostBack('UpdatePanel1', '');
}
//Child Page Trigger
<input type="button" id="button1" onclick="window.opener.Refresh()" value="Refresh Parent" />
通过选中“window.opener.closed”,你应该确保在调用Refresh()之前父文件仍处于打开状态。
我没有测试过这段代码,所以可能有一个类型'。
答案 2 :(得分:0)
看看window.opener
Reference parent window document
JQuery - Write to opener window
我的第一个想法是与父窗口通信以使用javascript执行刷新,您可以通过页面源查看更新面板调用的javascript并使用相同的内容。
答案 3 :(得分:0)
如果有机会使用RadWindow(telerik),则可以在父页面和子页面之间进行通信。
看演示 http://demos.telerik.com/aspnet-ajax/window/examples/dialogreturnvalue/defaultcs.aspx