【问题标题】:Can't prevent ModalDialog to close in SharePoint Web Part无法阻止 ModalDialog 在 SharePoint Web 部件中关闭
【发布时间】:2012-03-08 22:45:19
【问题描述】:

我在我的 Web 部件 (SharePoint 2010) 的 javascript 函数中调用 SP.UI.ModalDialog.showModalDialog() 但对话框出现一秒钟,然后自行关闭。
最初,我想调用一个共享点页面(在 Layouts 文件夹中),但我正在使用一个简单的对话框进行测试,以确保它不是我的共享点页面中的错误。

在 Web 部件中,我有一个表格,其中每个第一单元格行都是一个链接按钮。我已将 OnClientClick 设置为调用 javascript 函数:

linkButton.OnClientClick = string.Format("OpenNotationCurveDialog('{0}');",
                    notation.code);

在 Web 部件 ASCX 的脚本块中,我有:

function OpenNotationCurveDialog(notationCode) {

    var htmlElement = document.createElement('p');

    var helloWorldNode = document.createTextNode('Hello world!');
    htmlElement.appendChild(helloWorldNode);

    var options = {

        title: "Add item",
        allowMaximize: true,
        showClose: true,
        width: 800,
        height: 600,
        html: htmlElement,
        dialogReturnValueCallback: CurveDialog_ClosedCallback

    };

    SP.UI.ModalDialog.showModalDialog(options);

    return false;
}

function CurveDialog_ClosedCallback(result, value) {
    console.log('!! CurveDialog_ClosedCallback !!');
}

函数 CurveDialog_ClosedCallback 永远不会被调用。 在同一个 Web 部件中,我在 Web 部件菜单中添加了一个元素,该元素调用了 javascript 函数 SP.UI.ModalDialog.showModalDialog() :它运行良好。我不明白为什么从菜单调用 showModalDialog() 而不是从 LinkBut​​ton 客户端事件中工作。

知道如何解决这个非常烦人的行为吗? 谢谢

【问题讨论】:

    标签: sharepoint web-parts modal-dialog


    【解决方案1】:

    可能发生的情况是链接按钮执行回发以使页面重新加载,导致对话框消失尝试改用简单的锚标记。

    【讨论】:

    • 我有同样的想法:使用简单的锚标签可以正常工作。你知道我可以用什么 asp 控件替换 LinkBut​​ton 来设置客户端事件吗?当用户单击 asp:table 单元格时,我需要调用我的 javascript 函数。
    • 如果你真的需要在服务器端工作,你总是可以将你的锚标签声明为 runat="server" 并将其作为 HtmlAnchor (msdn.microsoft.com/en-us/library/8ff86hxd(v=vs.71).aspx) 使用。但是,纯粹在客户端进行调用似乎更容易,使用 jquery 或类似的东西设置连接。您是否有理由需要转到服务器端?
    • 是的,因为行(单元格也是)是在服务器端创建的。
    • 我保留了 LinkBut​​ton 并设置了:linkBut​​ton.OnClientClick = string.Format("OpenNotationCurveDialog('{0}');return(false);", notation.code) ;
    猜你喜欢
    • 1970-01-01
    • 2010-09-13
    • 2014-05-31
    • 2012-03-10
    • 2021-07-18
    • 1970-01-01
    • 1970-01-01
    • 2010-09-12
    • 2020-05-29
    相关资源
    最近更新 更多