我有一个带有编辑选项的网格,在编辑按钮上单击我需要重定向到编辑页面。要求是将此编辑页面作为背景(上一页)灰显的弹出窗口。
我尝试了模态弹出窗口,但控件位于单独的页面上。
我尝试了带有面板和 Iframe 的模式弹出窗口:这有效..但是出现了另一个问题。我需要在“保存”或“取消”按钮上关闭页面。这些控件将在编辑页面上,而不是在上一个页面上页面。任何帮助表示赞赏。
谢谢拉贾特
我强烈建议使用用户控件,因为它会更方便您管理,并且没有必要为其创建整个页面 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 打开另一个页面?
我会建议修改你的设计,因为它不会造成任何伤害,反而会更有帮助......
希望这有助于...
我已经多次使用 AJAX 控件工具包中的模态弹出控件并取得了很好的成功: http ://www.asp.net/ajax/ajaxcontroltoolkit/Samples/ModalPopup/ModalPopup.aspx
只是一个想法,但是如何使用 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”的元素。当该元素出现时,您可以调用模式的关闭函数(只需将警报替换为调用)。
如果您使用的是引导模态,那么您可以将 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">×</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>
我们可以使用 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"
});
}}