【问题标题】:Closing .aspx as a fancybox popup with a button关闭 .aspx 作为带有按钮的花式框弹出窗口
【发布时间】:2012-10-09 14:23:32
【问题描述】:

我有一个 javascript 函数,它制作一个弹出窗口并在弹出窗口中加载一个 .aspx 页面。 这是我的代码:

function moveEvent(doTheMove) {
        var selectedNotesList = getSelectedNoteIDs();
        if (doTheMove) {
            $.fancybox({
                'autoScale': false,
                'type': 'iframe',
                'height': 225,
                'width': 800,
                'href': 'Utilities/MoveFileTemplate.aspx?eventID=' + selectedNotesList +
                '&oldEventCaseFile=' + $('#hidCaseFile').val(),
                onComplete: function () {
                    $('#fancybox-overlay').unbind();
                },
                onClosed: function () {
                    $("#viewNotesGrid").flexReload();
                }
            });
        }
        else
            showMessage("No expenses are selected.");
    }

在我的 .aspx 页面中,我有 3 个单选按钮、一个 DropDownList 和 2 个按钮。我要做的是在用户单击“取消”按钮时关闭弹出窗口,而不必按右上角的“X”按钮。 (当取消按钮被按下时,它必须模仿“X”按钮,以便“onClosed:”可以触发并重新加载我的 flexigrid) 有什么建议吗?

【问题讨论】:

  • 你能粘贴你要复制的链接吗?

标签: javascript jquery asp.net fancybox


【解决方案1】:

你可以试试

var theBox;
...
function moveEvent(doTheMove) {
...
   theBox = $.fancybox({
      'autoScale': false,
      'type': 'iframe',
      'height': 225,
      'width': 800,
      'href': 'Utilities/MoveFileTemplate.aspx?eventID=' + selectedNotesList +
            '&oldEventCaseFile=' + $('#hidCaseFile').val(),
      onComplete: function () {
         $('#fancybox-overlay').unbind();
      },
      onClosed: function () {
         $("#viewNotesGrid").flexReload();
      }
   });
...
} //close the moveEvent function

然后点击取消按钮调用

window.parent.theBox.close();

EDIT(OP):其实是:parent.$.fancybox.close();

【讨论】:

  • 只是为了不让我感到困惑。 window.parent.theBox.close();作为 c# 在我的代码后面或作为字符串然后调用 RegisterScriptManager(不确定它是什么,但我已经看到了)?
  • 你可以直接在你的按钮中添加 <asp:button ID="cancelButton" runat="server" OnClientClick="window.parent.theBox.close();"></asp:button>
  • |我会试一试告诉你
  • 我试过 OnClientClick= 但它似乎没有关闭弹出窗口。
  • ...theBox = ... 可能不是我所期望的,需要稍后再试。
【解决方案2】:

客户端

  • window.close();作为
  • 中的 javascript 代码

编辑: 服务器端

  • Page.RegisterStartupScript("anykey","window.close();");

【讨论】:

  • 你应该在客户端这样做,它更快。如果您需要在后面的代码中进行一些处理,请使用服务器端代码。
  • 如果您在 iframe 中调用 window.close(),我认为它不会按预期工作...
  • 你可以刷新父级,然后它会关闭。
猜你喜欢
  • 1970-01-01
  • 2013-03-11
  • 2014-10-17
  • 1970-01-01
  • 1970-01-01
  • 2011-04-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多