Откройте страницу aspx как модальное всплывающее окно - PullRequest
1 голос
/ 04 августа 2011

У меня есть сетка с опцией редактирования, и при нажатии кнопки редактирования мне нужно перенаправить на страницу редактирования.требуется, чтобы эта страница редактирования отображалась как всплывающее окно с затененным фоном (предыдущая страница).

я пробовал модальное всплывающее окно, но элементы управления находятся на отдельной странице.

я пробовал модальное всплывающее окнос панелью и Iframe: это работает .. но тогда возникает другая проблема. Мне нужно закрыть страницу нажатием кнопки «СОХРАНИТЬ» или «Отмена». Эти элементы управления будут на странице редактирования, а не на предыдущей странице.ценится.

Спасибо Раджат

Ответы [ 5 ]

4 голосов
/ 04 августа 2011

Я настоятельно рекомендую использовать пользовательский контроль, так как вам будет удобнее управлять, и нет смысла создавать целую страницу для него. Модальное всплывающее окно bcz использует запрос ajax, и если вы попытаетесь загрузить страницу в него тогда вы должны выполнить отправку формы ... которая не сопровождается ни запросом ajax, ни отправкой формы обратно ...

Кроме того, я искал ответ на ваш вопрос, и я наткнулся на эту статью, где говорится:

Вы можете использовать Modal Popup Extender, чтобы открыть некоторую часть страницы как Неожиданно возникнуть. Но там у нас нет никаких свойств, чтобы открыть другой HTML или ASPX страница во всплывающем окне.

http://wiki.asp.net/page.aspx/1378/open-different-page-using-ajax-modal-popup-extender-control/

а также нашел людей, задающих тот же вопрос, что и вы, и ответ, который они получили здесь

использовать Iframe или пользовательский элемент управления

Есть ли способ открыть другую страницу с помощью ModalPopup Extender?

и я предложу изменить ваш дизайн, так как он не принесет никакого вреда, вместо этого он будет намного полезнее ...

надеюсь, это поможет ...

2 голосов
/ 04 августа 2011

Я несколько раз успешно пользовался Modal Popup Control из AJAX Control Toolkit: http://www.asp.net/ajax/ajaxcontroltoolkit/Samples/ModalPopup/ModalPopup.aspx

1 голос
/ 27 сентября 2018

Если вы используете загрузчик модальный, вы можете добавить iframe в модальное тело и загрузить в него URL своей страницы.

<div class="modal fade" id="modalC" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
    <div class="modal-dialog">
        <div class="modal-content">
            <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">&times;</span><span class="sr-only">Close</span></button>
                <h4 class="modal-title" id="myModalLabel">Cantidad reservas mensuales</h4>
            </div>
            <div class="modal-body" id="content">
                <iframe src="your new page url">
            </div>
        </div>
    </div>
</div>
1 голос
/ 04 августа 2011

Просто идея, но как насчет использования функции jquery "contents ()"?

Вы можете установить интервал для поиска элемента в iframe с родительской страницы.(Вы используете .net, чтобы вы могли сделать так, чтобы он появлялся при обратной передаче на странице iframe).

    <%@ Page Language="VB" AutoEventWireup="false" CodeFile="test.aspx.vb" Inherits="admin_test" %>

<!DOCTYPE html>

<html>
<head runat="server">
    <title></title>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>    
    <script>
        $(function () {

            var watchForClose = setInterval(function () {
                if ($('#testIframe').contents().find('#closeModal').length > 0) {
                    clearInterval(watchForClose);
                    /* call function to close modal here..*/
                    alert('Close modal');
                };
            }, 100);

        });
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <iframe id="testIframe" src="Default.aspx" width="300" height="300"></iframe>
    </div>
    </form>
</body>
</html>

Вышеприведенный поиск ищет элемент внутри страницы iframe с идентификатором closeModal.Когда появится этот элемент, вы можете позвонить функции закрытия модала (просто замените предупреждение на вызов).

0 голосов
/ 20 марта 2014

Мы можем открыть aspx как всплывающее окно, используя IFrame следующим образом:

Сначала возьмите кнопку и предоставьте событие onclick следующим образом

   <input id="btnSymbol" type="button" value="..." onclick="OpenMyPopUp()" runat="server"/> 

Далее На странице укажите тег «Div»с идентификатором следующим образом

   <div id="MyDialog">
        </div>

Затем найдите два метода, которые берут текущий URL и открывают страницу aspx во всплывающем окне, используя IFRAME

    function OpenMyPopUp(){openPopup('OpenPage.aspx', 530, 800, 'Page Title');}

Четыре параметра отправляются следующим образомURL, высота, ширина, заголовок

   function openPopup(url, h, w, t) {
if (url != null && h != null && w != null && t != null) {

    urlBase = location.href.substring(0, location.href.lastIndexOf("/") + 1);
    url = urlBase + url;
    $('#MyDialog').html('<iframe border=0 width="100%" height ="100%" src="' + url + '"> </iframe>');
    $("#MyDialog").dialog({
        title: t,
        modal: true,
        autoOpen: true,
        height: h,
        width: w,
        resizable: false,
        position: ['right-10', 'top+30'],
        closeOnEscape: false,
        dialogClass: "alert"
    });
}}
...