Попытка открыть пользовательский элемент управления (обернутый внутри страницы aspx) как всплывающее окно с помощью диалога jQuery на странице ASPX - PullRequest
1 голос
/ 11 февраля 2012

Я пытаюсь открыть пользовательский элемент управления (Child.ascx) в виде всплывающего окна с помощью диалога jQuery на странице Aspx.Я завернул Child.ascx в Child.aspx файл.Теперь в Main.aspx я хочу вызвать **Child.aspx** как всплывающее окно ..

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>

Пожалуйста, совет.

Спасибо

BB

1 Ответ

1 голос
/ 13 февраля 2012

Вы можете открыть child.aspx во всплывающем окне. Вы можете сделать это за два шага:

1) загрузить child.aspx в скрытый контейнер главной страницы, используя $ ("# child"). Load ...

2) открыть всплывающее окно, используя диалоговое окно: $ ("# child"). Dialog ...

...