0

我有一个带有编辑选项的网格,在编辑按钮上单击我需要重定向到编辑页面。要求是将此编辑页面作为背景(上一页)灰显的弹出窗口。

我尝试了模态弹出窗口,但控件位于单独的页面上。

我尝试了带有面板和 Iframe 的模式弹出窗口:这有效..但是出现了另一个问题。我需要在“保存”或“取消”按钮上关闭页面。这些控件将在编辑页面上,而不是在上一个页面上页面。任何帮助表示赞赏。

谢谢拉贾特

4

5 回答 5

5

我强烈建议使用用户控件,因为它会更方便您管理,并且没有必要为其创建整个页面 bcz modal popup 使用 ajax 请求,如果您尝试在其中加载页面,那么您有做表单发布......这不会使用ajax请求或表单回发......

另外,我一直在寻找您的问题的答案,而我偶然发现了这篇文章,其中说:

您可以使用 Modal Popup Extender 将页面的某些部分作为 Popup 打开。但是我们没有任何属性可以在弹出窗口中打开其他 html 或 aspx 页面。

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

并且还发现人们问和你一样的问题,他们得到的回答就在这里

使用 iframe 或用户控件

有没有办法使用 ModalPopup Extender 打开另一个页面?

我会建议修改你的设计,因为它不会造成任何伤害,反而会更有帮助......

希望这有助于...

于 2011-08-04T12:49:33.787 回答
2

我已经多次使用 AJAX 控件工具包中的模态弹出控件并取得了很好的成功: http ://www.asp.net/ajax/ajaxcontroltoolkit/Samples/ModalPopup/ModalPopup.aspx

于 2011-08-04T12:32:44.060 回答
1

只是一个想法,但是如何使用 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 页面中寻找一个 id 为“closeModal”的元素。当该元素出现时,您可以调用模式的关闭函数(只需将警报替换为调用)。

于 2011-08-04T13:12:24.010 回答
1

如果您使用的是引导模态,那么您可以将 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>
于 2018-09-27T08:10:13.780 回答
0

我们可以使用 IFrame 打开一个 aspx 作为弹出窗口,如下所示,

首先取一个按钮并提供 onclick 事件如下

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

Next 在页面中提供一个带有 id 的“Div”标签,如下所示

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

然后在下面找到两种方法,它们采用当前 URL 并使用 IFRAME 在弹出窗口中打开一个 aspx 页面

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

四个参数发送如下 URL,height,width,title

   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"
    });
}}
于 2014-03-20T16:05:18.893 回答