从Sitecore uiUpload管道进程打开一个对话框

时间:2014-01-15 20:08:43

标签: dialog sitecore pipeline

我目前正在尝试在Sitecore的Save uiUpload管道流程中显示SheerResponse.YesNoCancel()对话框。当我进行该调用时会出现问题并且它会抛出NullException。我觉得这很奇怪所以我开始从Sitecore的DLL复制代码并将其添加到我的解决方案中。之后,我发现如果属性OutputEnable为false,则返回ClientCommand NULL,当它尝试向其添加控件时,将显示Exception。所以修复我能够完成该方法的执行。无论如何我仍然无法显示对话框。所以问题是:我可以从Sitecore uiUpload管道中显示一个Dialog吗?

2 个答案:

答案 0 :(得分: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();之后中止管道,不知道这是否会帮助你的情况

答案 1 :(得分:0)

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

  

uiUpload管道不是作为Sheer事件的一部分运行,而是作为表单加载过程的一部分来响应回发。这是因为上传的文件仅在“真实”回发期间可用,而不是在纯粹的UI事件期间。从这个意义上讲,uiUpload管道并未设计为提供UI。

该页面是为v5.1和5.2编写的,但我很确定它仍然适用。该页面声称您可以像Ahmed建议的那样向页面发出javascript,但是当我尝试它时它不起作用。