C# 使用模式弹出窗口在另一个aspx页面中显示aspx页面
我有下面的代码,我正在使用它打开模式弹出窗口内的aspx页面,但问题是,一旦我加载模式弹出窗口的主机页面,它就会重定向到iFrame内的主机页面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
<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');
}