2010-11-04 122 views
3

有谁知道我可以在我的弹出页面上从操作的父C#页面上重新加载UpdatePanel而无需刷新整个父页面。我的父页面不保留它在Url中的状态,所以用户可能已经在这里扩展了一个div,在那里刷新了一个列表,并且该父页面状态需要被保存。所有需要发生的事情是,当用户在弹出窗口中添加新事件时,包含“DomainObjects.Incident”的GridView的UpdatePanel应该更新/刷新。如何从弹出页面更新ac#父页面而无需全部刷新

有没有办法连接两个不同的asp.net页面之间的事件?或者我应该使用JavaScript?

回答

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" /> 

你或许应该确保父仍是调用刷新之前的open()通过检查 “window.opener.closed”。

我没有测试过这段代码,所以可能会有type'o。

+0

这看起来是最有希望的选择,但我无法让它工作。但是谢谢你的提示+1。 – 2010-11-30 04:32:50

3

完全由.net代码完成管理的唯一方法是如果您使用类似AjaxControlToolkit的东西来使主页中的弹出窗口成为模态div。

否则,您可以在子页面和父页面中使用JavaScript触发父页面中的某些回发/回调。您可以将回发/回调事件设置为更新面板的触发器。

+0

很好的意见,但我没有做这一个模式格,所以我想看看我有什么其他选择。 – 2010-11-23 00:02:57

相关问题