如何在网页对话框中获得价值

时间:2012-03-01 07:35:32

标签: sharepoint

在SharePoint中,有一个名为RSS Viewer的默认WebPart,如果单击RSS Viewer的ToolPart中的“XSL Editor”按钮,它将弹出一个网页对话框,您可以编辑该信息并保存。 我正在做一些需要这样功能的东西,我点击了我的WebPart的ToolPart中的“编辑”按钮,它会弹出一个网页对话框。我这样写了:

myButton.Attributes.Add("onClick", "window.showModalDialog('/_layouts/MyWebPart/sample.html')");

那么,如何在popuped网页对话框中保存或获取字符串到我的WebPart?

2 个答案:

答案 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调试器中弹出的模式窗口的“保存”按钮的体系结构。