1

I am trying to open an user control (Child.ascx) as popup using jQuery dialog in an Aspx page. I wrapped Child.ascx in Child.aspx file. Now in Main.aspx I want to call the **Child.aspx** as a popup..

Main.aspx:

 <script type="text/javascript">
        $(document).ready(function () {
            $('#btnMemo').click(function () {
                $.blockUI({ message: '<h1> Processing...</h1>' });
                var ControlName = "Child.ascx";
                $.ajax({
                    type: "POST",
                    url: "Child.aspx/Result",
                    data: "{controlName:'" + ControlName + "'}",
                    contentType: "application/json; charset=utf-8",
                    dataType: "json",
                    success: function (response) {
                        $.unblockUI();
             ********* /// Code to open the popup ***********
                      //  $('#result').dialog(response.d);
                    },
                    failure: function (msg) {
                        $.unblockUI();
                       ///// $('#result').html(msg);
                    }
                });
            });
        });

    </script>

..................

     <td>
      <asp:ImageButton ID="btnMemo" runat="server"  AlternateText="Memo" CausesValidation="false" ClientIDMode ="Static" />
        <div id="divMemoInfo" title="Memo"></div>
     </td>

Child.aspx.cs :

[WebMethod]
    public static string Result(string controlName)
    {
        return RenderControl(controlName);
    }

    public static string RenderControl(string controlName)
    {
        Page page = new Page();
        UserControl userControl = (UserControl)page.LoadControl(controlName);
        userControl.EnableViewState = false;
        HtmlForm form = new HtmlForm();
        form.Controls.Add(userControl);
        page.Controls.Add(form);

        StringWriter textWriter = new StringWriter();
        HttpContext.Current.Server.Execute(page, textWriter, false);
        return textWriter.ToString();
    }

Child.aspx

 <body>
    <form id="form1" runat="server">
         <div id="result">
         </div>
    </form>
</body>

Please advice.

Thanks

BB

BumbleBee
  • 10,429
  • 20
  • 78
  • 123

1 Answers1

1

You can open child.aspx in a popup. You could accomplish this with two steps:

1) load child.aspx in an hidden container of the main page using $("#child").load ...

2) open the popup using dialog : $("#child").dialog ...

Dmitry Savy
  • 1,067
  • 8
  • 22