以下jQuery通过GridView上的按钮获取触发器,这允许我在一个漂亮的弹出窗口Iframe中编辑记录。但是,我需要从EditEmployee.aspx页面的代码(c#)后面关闭Iframe弹出窗口。我通过搜索谷歌和stackoverflow尝试了几乎所有的选项,似乎没有工作。我尝试在父页面上调用CloseDialog()添加一个函数,然后调用window.parent.CloseDialog(),我无法使它工作。有人可以帮助我,我是jQuery的新手吗?
<script type="text/javascript">
$(document).ready(function () {
$('a#popup').on('click', function (e) {
var page = $(this).attr("href") //get url of link
var $dialog = $('<div></div>')
.html('<iframe style="border: 0px; " src="' + page + '" width="100%" height="100%"></iframe>')
.dialog({
autoOpen: false,
modal: true,
height: 450,
width: 'auto',
title: "Edit Employee",
buttons: {
"Close": function () { $dialog.dialog('close'); }
},
close: function (event, ui) {
__doPostBack('<%= btnRefresh.ClientID %>', ''); // To refresh gridview when user close dialog
}
});
$dialog.dialog('open');
e.preventDefault();
});
});
</script>
<asp:TemplateField HeaderText="ID">
<ItemTemplate >
<a id="popup" href='EditEmployee.aspx?id=<%# Eval("ID") %>' >edit</a>
</ItemTemplate>
</asp:TemplateField>
答案 0 :(得分:0)
试试这个:
ClientScript.RegisterStartupScript(GetType(), "closeDialog", "$dialog.dialog('close');", true);
答案 1 :(得分:0)
事实证明,我需要给iframe一个id,然后调用close函数,就像这个链接Close IFrame Dialog from Popup
function closeIframe()
{
$('#iframeId').dialog('close');
return false;
}