2014-01-15 58 views
1

我正在嘗試在Sitecore的Save uiUpload管道進程中顯示一個SheerResponse.YesNoCancel()對話框。問題出現在我打這個電話時,它會拋出一個NullException。我認爲這很奇怪,所以我開始從Sitecore的DLL複製代碼並將其添加到我的解決方案中。之後,我發現如果OutputEnable屬性爲false,則返回ClientCommandNULL,並且當它試圖向其添加控件時,會出現Exception。因此修復了我能夠完成該方法的執行。無論如何,我仍然無法顯示對話框。所以問題是:我可以從Sitecore uiUpload管道顯示對話框嗎?從Sitecore uiUpload管道進程打開一個對話框

回答

0

不,你不能。從http://sdn.sitecore.net/Articles/Media/Prevent%20Files%20from%20Uploading.aspx

uiUpload管道不是作爲Sheer事件的一部分運行,而是作爲響應回發的表單加載過程的一部分運行。這是因爲上傳的文件只能在「真實」回傳期間使用,而不能在Sheer UI事件期間使用。在這個意義上,uiUpload管道並沒有被設計爲提供UI。

該頁面是爲v5.1和5.2編寫的,但我很肯定它仍然適用。該頁面聲稱,您可以像Ahmed建議的那樣將JavaScript發送到頁面,但是當我嘗試它時,它不起作用。

+0

是的,這正是發生的事情。我最終修改了在選擇要上傳的文件後調用的javascript'MediaFolder.js'。非常感謝! –

1

您是否嘗試過使用Sitecore.Context.ClientPage.ClientResponse.YesNoCancel(),我做了類似於您正在嘗試做的事情,但我使用了Alert(),對我工作得很好。

更新:其實uiUpload管道內你不能調用這個方法,但是你可以做的是使用HttpContext.Current.Response.Write("<html><head><script type=\"text/Javascript\">[Your Java Script</script></head></html>"),您將需要此args.AbortPipeline();後中止管道,不知道這是否會幫助你的情況還是不

+0

是的,我已經試過用'警報()'和'ShowModalDialog的()'但仍沒有運氣。我也試過'Sitecore.Context.ClientPage.ClientResponse.YesNoCancel()',但沒有奏效。事實上,SheerResponse方法在其中調用了「Sitecore.Context.ClientPage.ClientResponse」方法。 –

+0

也試過,但沒有工作。謝謝! –

相關問題