这个想法很简单:在SP Designer 2010中创建一个Web部件页面,允许创建一个新的列表项,然后使用CSOM中的一些javascript在另一个页面的模式对话框中弹出页面。问题是出现了一个对话框并且短暂闪烁它正在加载内容,但随后它就消失了,我留下了我刚刚点击的页面的刷新版本。这是我的代码。 。
//attach a click delegate to the table containing the following button(s)
<button type='button' class='ms-listheaderlabel'>Close</button>
//on button clicked event, call the following function
function openModalDialog(dialogPage, closeCallback) {
var options = [];
options.title = unescape("Close Ticket");
options.allowMaximize = true;
options.showClose = true;
options.autoSize = true;
options.url = dialogPage;
options.dialogReturnValueCallback = Function.createDelegate(null, closeCallback);
SP.UI.ModalDialog.showModalDialog(options);
};
。 。 。其中dialogPage是我创建的表单的URL(相同的站点,SitePages库),closeCallback是传入的匿名函数,用于处理对话框的返回值。我试过直接调用页面,它加载得很好。弹出窗口拦截器完全关闭。使用IE9并尝试了8兼容模式以及另一台直接IE8的机器。系统模态工作得很好。那里有什么想法吗?
答案 0 :(得分:3)
我现在正在经历完全相同的问题。到目前为止我发现的是如果我使用
<input type="button" value="Try Me" onclick="openModalDialogBox()" />
它按预期工作。但是,如果我使用asp:按钮来做同样的事情就会失败。我认为它可能与回发到服务器有关,但我可能错了。
我只是将按钮切换为输入。
蒂姆