【问题标题】:Refresh the page on close of popup window在弹出窗口关闭时刷新页面
【发布时间】:2016-09-20 08:58:41
【问题描述】:

如何在弹出窗口关闭时刷新父页面。 close 函数是一个 RadCodeBlock 客户端脚本。如何从给定的关闭函数刷新父页面?

<telerik:RadCodeBlock runat="server" ID="rcb1">
    <script type="text/javascript">
        function GetRadWindow() {
            var oWindow = null;
            if (window.radWindow)
                oWindow = window.radWindow;
            else if (window.frameElement.radWindow)
                oWindow = window.frameElement.radWindow;
            return oWindow;
        }

        function Close() {
            var result = window.confirm("Are you sure you want to close the window!");
            if (result == true) {
                var oWindow = GetRadWindow();
                oWindow.argument = null;
                oWindow.close();
                return false;
            } 
        }
    </script>
</telerik:RadCodeBlock>

【问题讨论】:

  • 或许首先考虑一下为什么需要重新加载页面。也许弹出窗口可以在新数据中进行 ajax?否则,通常使用opener.reload(1)(用于弹出窗口)和top.reload(1)(用于框架)完成此外,您可以使用if (window.confirm("Are you sure you want to close the window!")) { ...
  • 我需要重新加载父页面,因为我正在从弹出窗口更新表格,并且更改应立即反映在父页面中。
  • 这听起来是使用 AJAX 和简单 div 的一个很好的理由
  • 我该怎么做?有示例代码吗?
  • 我正在从服务器端打开弹出窗口,如下所示ScriptManager.RegisterStartupScript(Page, Page.GetType(), "someKey", script, true);opener.reload(1) 不起作用。

标签: javascript c# asp.net telerik


【解决方案1】:

这是我的一个旧项目中的一个工作示例。也许它会给你一些想法。

ASPX

<telerik:RadWindowManager ID="rwm" runat="server" VisibleStatusbar="false" ReloadOnShow="true">
   <Windows>
       <telerik:RadWindow ID="rw1" Title="My Window" runat="server" Behaviors="Default" OnClientClose="onClientClose">
       </telerik:RadWindow>
   </Windows>
</telerik:RadWindowManager>

JS

function OnClientClose(oWnd) {
     // alert("hello there");
     // you could use the client-side code to rebind the radgrid
     // e.g. 
     // var mt = $find("<%= RadGrid1.ClientID %>").get_masterTableView();
     // mt.rebind();
     // or you can just reload the page
     document.location.reload();
}

或者,如果你想在后面的代码中重新绑定或者做一些其他的事情,你可以在页面上添加一个隐藏的按钮服务器控件,然后通过你的 JS 发起点击事件。

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 2016-12-19
    • 2012-06-03
    • 2017-02-05
    • 1970-01-01
    • 1970-01-01
    • 2011-05-15
    • 2016-03-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多