asp.net - 当子页面关闭时,是否可以在父页面上调用服务器端事件?

标签 asp.net javascript ajax

我有一个带有两个数据控件的父页面。我希望能够打开一个子窗口,在其上执行某些操作,当它关闭时,我只想重新绑定(bind)父页面上的两个数据控件之一。我有想要在 UpdatePanel 中更新的控件,因此想调用重新绑定(bind)它并调用 UpdatePanel.Update()。

最佳答案

从子窗口中,您实际上无法“调用”父页面的服务器端函数,但是您可以使用一些 JavaScript 来调用该页面上的客户端函数。

在父页面上:

<script language="Javascript" type="text/javascript">
function CallAlert()
{
    alert("This is parent window's alert function.");
}
</script>

在子页面上:

<script language="Javascript" type="text/javascript">
function CallParentWindowAlert()
{
    window.opener.CallAlert();
    return false;
}
</script>

在您提供的示例中,特别是在您有 UpdatePanel 的情况下,您实际上在这里给自己留下了一些选项。如果 UpdatePanel 设置了某种形式的触发器来强制其更新,无论是所有子控件还是仅指定的控件,在父函数中,您都可以强制对这些控件之一进行回发。最终,父页面 javascript 函数应该具有某种形式的 __doPostBack() 调用,引用控件的 id 和一些(空)参数,但是您最好通过以下代码隐藏生成该 javascript:

Page.ClientScript.GetPostBackEventReference(control, null);

将它们组合在一起后,只需将实际调用与您想要在子页面上出现的任何客户端事件(无论是 onUnLoad() 还是在您调用的某些自定义函数中)联系起来即可。

关于asp.net - 当子页面关闭时,是否可以在父页面上调用服务器端事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2057897/

相关文章:

javascript - Jquery 函数在 ASP.NET 用户控件中没有被触发

javascript - 根据选定的单选按钮隐藏显示

javascript - ImmutableJS - 只更新对象中的一个键值

javascript - 添加路径到fabric.js组是反转位置还是z-index?

javascript - 将备用页面内容加载到 div onload 中

javascript - Jquery 自动完成功能不起作用 - 没有搜索结果

css - 如何在ASP.NET网页中设置div的背景颜色

c# - Telerik RadAsyncUpload 404 加载 Telerik.Web.UI.WebResource.axd

ajax - 如何在单击 p :dataTable through ajax 中的“全选”复选框时调用方法

c# - IdentityServer4 - 无法验证 token