2012-03-01 20 views
0

SharePointにはRSSビューアというデフォルトWebPartがあり、RSSビューアのToolPartで「XSL Editor」ボタンをクリックするとWebページダイアログがポップアップし、情報を編集して保存することができます。Webページのダイアログで値を取得する方法

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

ので、保存する方法または:私はそのような機能を必要とする何かをやっている が、私は私のWebパーツのToolPartで「編集」ボタンをクリックして、それがdialog.Iはこのようにそれを書いたWebページをポップアップポップアップされたWebページダイアログの文字列をWebPartに取得しますか?

答えて

1

を引数として使用されるダイアログの結果オブジェクトを渡し、あなたはjQueryのダイアログhttp://docs.jquery.com/UI/Dialogに頼ることはできますか?あなたのwebpartにjQueryをリンクすることができれば、それでこのイベントを見てください:http://docs.jquery.com/UI/Dialog#event-close。それはあなたの役に立つかもしれません。これには、ソリューションのアーキテクチャが少し変わる必要があります。

また、FireBugのようなWebデバッガでポップアップするモーダルウィンドウの[保存]ボタンを分析できるアーキテクチャを変更したくない場合。

+0

jQueryダイアログを使用しようとすると、ToolPartのボタンをクリックしてダイアログが表示されますが、ダイアログはすぐに消えました。なぜか分かりますか? –

+0

あなたのボタンかもしれないが、ダイアログが表示された後にページをリロードするポストバックを引き起こしますか?その場合は、クライアントのみのボタンを使用する必要があります。 –

+0

年、あなたは正しいです、ボタンはサーバーコントロールです、私はhtmlボタンで置き換え、それworks.Thanksあなたの助けを! –

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; 
} 
} 
+0

答えていただきありがとうございますが、SP.UI.ModalDialog.showModalDialogはSharePoint 2010でのみ使用できます。commonShowModalDialog関数をボタンに追加しましたが、Webページダイアログにコンテンツを保存する方法がわかりませんそれはポップアップします。 –

関連する問題