C# 使用模式弹出窗口在另一个aspx页面中显示aspx页面

C# 使用模式弹出窗口在另一个aspx页面中显示aspx页面,c#,jquery,asp.net,webforms,C#,Jquery,Asp.net,Webforms,我有下面的代码,我正在使用它打开模式弹出窗口内的aspx页面,但问题是,一旦我加载模式弹出窗口的主机页面,它就会重定向到iFrame内的主机页面 <cc1:ModalPopupExtender ID="mp1" runat="server" PopupControlID="Panl1" TargetControlID="Button1" CancelControlID="Button2&q

我有下面的代码,我正在使用它打开模式弹出窗口内的aspx页面,但问题是,一旦我加载模式弹出窗口的主机页面,它就会重定向到iFrame内的主机页面

<cc1:ModalPopupExtender ID="mp1" runat="server" PopupControlID="Panl1" TargetControlID="Button1"  
    CancelControlID="Button2" BackgroundCssClass="Background">  
</cc1:ModalPopupExtender>  
<asp:Panel ID="Panl1" runat="server" CssClass="Popup" align="center" Style="display: none">
    <iframe style="width: 350px; height: 300px;" id="irm1" src="PayrollScope.aspx?id=49437" runat="server"></iframe>
    <br />
    <asp:Button ID="Button2" runat="server" Text="Close" />
</asp:Panel>


所以序列是 MainPage.aspx->单击弹出窗口->在模式中加载PayrollScope.aspx

但我一点击MainPage.aspx,它就会重定向到PayrollScope.aspx。我也尝试使用jQuery模式弹出窗口,但同样的问题也在发生。有人能告诉我为什么会重定向吗


如果您使用jQuery对话框加载另一个页面,那就谢谢您了

好的,它会显示,但是如果页面中的任何代码有回发,那么是的,它会重新定向到该页面。(jQuery对话框只是将整个其他页面直接拉到该div中,并将其“合并”到当前页面的dom中。因此,您可以显示该页面,而不会重新定向。但是,任何服务器端按钮事件代码(按下按钮,甚至说编辑文本框的更新后事件(更改)将导致回发。任何回发都将导致页面重新定向(毕竟任何代码隐藏事件都会将整个页面和URL发送回IIS。因此,这在很大程度上取决于您是否只是显示该页面,或者您是否希望/需要/让用户在第二个页面上以对话框的形式进行交互

因此,转储ajax弹出窗口并控制对弹出窗口id的尊重。(不要尝试jQuery和AjaxToolkit来“同时”尝试弹出一个控件/div-它们之间往往不友好

我确实建议使用jQuery

这是可行的(但考虑到上面的回邮问题)

因此,现在上面的内容将只显示div中的另一个页面,因为它是一个iFrame,所以您可以在该iFrame中进行交互,并在该iFrame中进行回发


所以,删除ajax面板的东西-试试jQuery.ui。我使用了ajax工具包的东西,但是为了在对话框中显示另一个完整的页面,我发现jQuery.ui似乎工作得更好

请显示整个aspx页面?您一定缺少关键元素。请将代码也发布到后面,无法从j中看出发生了什么单击标记。
<body>
<form id="form1" runat="server">
<br />
<asp:Button ID="Button1" runat="server" Text="Show page as dialog" OnClientClick="showpage1();return false"/>

<div id="poppage" runat="server" style="display:none">
</div>

<link href="//ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/themes/smoothness/jquery-ui.min.css" rel="stylesheet" />
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/jquery-ui.min.js"></script>

<script>

    function showpage1() {
        var mydiv = $('#poppage');
        mydiv.dialog({
            autoOpen: false, modal: true, title: 'My cool other page', width: '50%',
            position: { my: 'top', at: 'top+150' }
        });
        mydiv.load('MyOtherPage.aspx');
        // Open the dialog
        mydiv.dialog('open');
      }
<div id="poppage" runat="server" style="display:none">
    <iframe src="MyOtherPage.aspx" class="auto-style1"></iframe>
</div>
    function showpage1() {
        var mydiv = $('#poppage');
        mydiv.dialog({
            autoOpen: false, modal: true, title: 'My cool other page', width: '50%',
            position: { my: 'top', at: 'top+150' }
        });
        // Open the dialog
        mydiv.dialog('open');
      }