javascriptjqueryasp.nettelerikradwindow

How to refresh the parent page on closing the rad window


I have a opened a rad window using below java-script code given below. Now I want to refresh my parent page on closing the rad window. To achieve this i have linked a jquery method, OnSendInviteClose with onclose event. Now this code refreshes my parent page but some time it gives me error described as "can't execute code from a freed script". How to fix this issue or reload my parent page on close (any other way).

Thanks

var e_showaddresslist = function (sender, args) {
    var url = $page.url.create("Pages/CalendarInvites.aspx?parentScreen=sendInviteWnd");
    var win = $window.createPopup(url,
    {
        size: "750, 500", behaviors: Telerik.Web.UI.WindowBehaviors.Close | Telerik.Web.UI.WindowBehaviors.Maximize | Telerik.Web.UI.WindowBehaviors.Move | Telerik.Web.UI.WindowBehaviors.Reload | Telerik.Web.UI.WindowBehaviors.Modal, name: "sendInviteWnd", onclose: onSendInviteClose
    },
    function () {
        //$page.get_window().set_destroyOnClose(true);
    });
  }

function onSendInviteClose() {
        window.location.reload(true);
}

Note: All the code is place in the calendar.js file which has references in both parent and radwindow page.


Solution

  • Attached the 'onSendInviteClose' method on close event.

     var win = $window.createPopup(url,
        {
            size: "750, 500", behaviors: Telerik.Web.UI.WindowBehaviors.Close |Telerik.Web.UI.WindowBehaviors.Move,  onclose: onSendInviteClose
        }
    

    Now create that method in the page from which the popup is opened. This function will automatically fired when popup window is closed.

    function onSendInviteClose() {
        //get a reference to the current RadWindow
        var wndow = GetRadWindow();
        wndow .Close();
        // and as this method is present in parent page
        // we can refresh the page controls easily.
    }
    
    function GetRadWindow() {
        var oWindow = null;
        if (window.radWindow) oWindow = window.radWindow;
        else if (window.frameElement.radWindow) oWindow = window.frameElement.radWindow;
        return oWindow;
    }