在SharePoint中,有一个名为RSS Viewer的默认WebPart,如果单击RSS Viewer的ToolPart中的“XSL Editor”按钮,它将弹出一个网页对话框,您可以编辑该信息并保存。 我正在做一些需要这样功能的东西,我点击了我的WebPart的ToolPart中的“编辑”按钮,它会弹出一个网页对话框。我这样写了:
myButton.Attributes.Add("onClick", "window.showModalDialog('/_layouts/MyWebPart/sample.html')");
那么,如何在popuped网页对话框中保存或获取字符串到我的WebPart?
答案 0 :(得分:1)
这是在SharePoint中使用对话框的示例代码。当您关闭对话框时,您将传递对话框结果对象,该对象将在“主机”页面中用作参数
var webUrl = "<SharePoint:EncodedLiteral ID='webUrl' runat='server' EncodeMethod='EcmaScriptStringLiteralEncode' />" + "/_layouts/IC/PhoneBookPicker/SelectItem.aspx";
var dialogTitle = "<SharePoint:EncodedLiteral ID='dialogTitle' runat='server' EncodeMethod='EcmaScriptStringLiteralEncode' />";
var displayValueClientID = "<SharePoint:EncodedLiteral ID='displayValueClientID' runat='server' EncodeMethod='EcmaScriptStringLiteralEncode' />";
var hiddenValueClientID = "<SharePoint:EncodedLiteral ID='hiddenValueClientID' runat='server' EncodeMethod='EcmaScriptStringLiteralEncode' />";
function openPhoneBookPickerSearchDialog() {
var options = {
title: dialogTitle,
width: 600,
height: 435,
url: webUrl,
displayValue: document.getElementById(displayValueClientID).innerHTML,
hiddenValue: document.getElementById(hiddenValueClientID).value,
dialogReturnValueCallback: Function.createDelegate(null, IC_modalDialogClosedCallback)
};
SP.UI.ModalDialog.showModalDialog(options);
}
function IC_modalDialogClosedCallback(result, value) {
if (result == 1) {
document.getElementById(hiddenValueClientID).value = value.hiddenValue;
document.getElementById(displayValueClientID).innerHTML = value.displayValue;
}
}
答案 1 :(得分:1)
你能依靠jQuery对话http://docs.jquery.com/UI/Dialog吗?如果您可以将jQuery链接到您的webpart,请查看其中的此事件:http://docs.jquery.com/UI/Dialog#event-close。这可能对你有用。这将需要您的解决方案架构发生一些变化。
或者您不想更改可以分析在FireBug等Web调试器中弹出的模式窗口的“保存”按钮的体系结构。