【发布时间】: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() 而不是从 LinkButton 客户端事件中工作。
知道如何解决这个非常烦人的行为吗? 谢谢
【问题讨论】:
标签: sharepoint web-parts modal-dialog