Can';无法阻止在SharePoint Web部件中关闭ModalDialog
我正在我的Web部件(SharePoint 2010)的javascript函数中调用SP.UI.ModalDialog.showModalDialog(),但该对话框会出现一秒钟,然后自动关闭。Can';无法阻止在SharePoint Web部件中关闭ModalDialog,sharepoint,web-parts,modal-dialog,Sharepoint,Web Parts,Modal Dialog,我正在我的Web部件(SharePoint 2010)的javascript函数中调用SP.UI.ModalDialog.showModalDialog(),但该对话框会出现一秒钟,然后自动关闭。 最初,我想调用sharepoint页面(在Layouts文件夹中),但我正在使用一个简单的对话框进行测试,以确保它不是sharepoint页面中的错误 在Web部件中,我有一个表,其中每个第一个单元格行都是一个链接按钮。我已将OnClientClick设置为调用javascript函数: linkBu
最初,我想调用sharepoint页面(在Layouts文件夹中),但我正在使用一个简单的对话框进行测试,以确保它不是sharepoint页面中的错误 在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\u ClosedCallback。
在同一个Web部件中,我在Web部件菜单中添加了一个元素,该元素调用javascript函数SP.UI.ModalDialog.showModalDialog():它工作得非常好。我不明白为什么从菜单中调用showModalDialog()时它会工作,而从LinkButton客户端事件中它却不工作
你知道如何解决这个恼人的行为吗?
thx可能发生的情况是,linkbutton执行回发,以便重新加载页面,导致对话框消失。请尝试使用简单的锚定标记。我有相同的想法:使用简单的锚定标记可以正常工作。您知道我可以用什么asp控件替换LinkButton来设置客户端事件吗?当用户单击asp:table单元格时,我需要调用我的javascript函数。如果您确实需要在服务器端工作,您可以始终将锚点标记声明为runat=“server”,并将其作为HtmlAnchor()使用。但是,似乎完全在客户端进行调用更容易,使用jquery或类似的方法设置连接。是否需要转到服务器端?是的,因为行(也包括单元格)是在服务器端创建的。我保留了LinkButton,只设置了:LinkButton.OnClientClick=string.Format(“OpenNotationCurveDialog('{0}');return(false);”,notation.code);