How can I reload a jQuery dialog box from within the dialog?

javascript, jquery, jquery-dialog, jquery-ui

Solution

You are loading content from another page into the dialog container in the current page, so there is really only one page in play here. I would recommend only loading partial html (no `<head>` or `<body>` tags) from your dialog source page.

So you can either destroy the dialog and recreate it to reload the dialog content:

function reload_dialog()
{
    $('#dialog').dialog('destroy');
    view_dialog();
}

function view_dialog() {
    $('#dialog').load('blah2.aspx').dialog({
        title: 'test' ,
        modal: 'true',
        width: '80%',
        height: '740',
        position: 'center',
        show: 'scale',
        hide: 'scale',
        cache: false });
}

Or, you can reload the entire page.

window.location.reload();

Problem

I load a page within a jQuery `Dialog`. After an ajax command is completed, I would like to be able to reload the same page within the jQuery `Dialog`. How can I reload a jQuery `Dialog` from within the page that is loaded in the `Dialog`? Parent Page (Blah.aspx): ``` <script type="text/javascript"> function view_dialog() { $('#dialog').load('blah2.aspx').dialog({ title: 'test' , modal: 'true', width: '80%', height: '740', position: 'center', show: 'scale', hide: 'scale', cache: false }); } </script> <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server"> <input id="Button1" onclick="view_dialog()" type="button" value="button" /> <div id="dialog" style="display: none"></div> </asp:Content> ``` Dialog contents page (blah2.aspx): ``` <asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server"> <script type="text/javascript"> $(document).ready(function() { function doit() { var request = $.ajax({ url: "someurl", dataType: "JSON", data: { a: 'somevalue' } }); request.done(function () { //refresh the current dialog by calling blah2.aspx again }); } </script> <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server"> <input id="Button1" onclick="doit()" type="button" value="button" /> </asp:Content> ```

Original source