2016-09-20 78 views
0

如何在弹出窗口关闭时刷新父页面。关闭函数是一个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> 
+0

也许首先要考虑为什么你需要重新加载页面。也许弹出窗口可以在新数据中使用ajax?否则它通常使用'opener.reload(1)'(对于弹出窗口)和'top.reload(1)'(对于帧)完成。另外,你可以执行'if(window.confirm(“你确定你想要关闭窗口!“)){...' – mplungjan

+0

我需要重新加载父页面,因为我正在从弹出窗口更新表格,并且更改应该立即反映在父页面中。 –

+1

这听起来像是一个很好的理由使用AJAX和一个简单的div – mplungjan

回答

0

下面是我的一个旧项目的工作示例。也许它可能会给你一些想法。

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启动点击事件。

希望这会有所帮助。

相关问题