我已经根据Data Definition Cookbook中的内容创建了一些简单的命令,其中用户交互是右键单击项目 - >插入 - > MyCommand,然后是一个简单的对话框,显示“您是否真的想要这样做” 。那很棒。如何使用Sitecore ShowControlPopup与用户进行对话交互?
现在我想要一个允许我在对话框中与用户进行更多交互的命令。我需要添加几个单选按钮列表,以便用户可以选择选项,然后使用按钮来运行该命令。我想我需要为此使用ShowControlPopup。我创建了一个控件(ascx)来定义弹出窗口的样子(并发布了一个测试版本,以查看它在Sitecore中的基本控件)。不过,我不确定ShowControlPopup的参数究竟是什么。
第一个paratered被称为“Id
” - 我在这里放什么ID?使用弹出控件的项目的ID?
第二个参数被称为“where
” - 我猜这是弹出窗口的URL。内容项目是否需要存在,还是仅仅是一个虚拟URL?
第三个参数叫做“controlId
” - 我在这里放什么样的ID?我已经尝试过我的控件的id,它定义了弹出窗口,但是我收到一个错误,提示无法找到控件。
当用户在对话框中选择了他们的选项并单击“确定”时,处理该事件的是什么?命令类的Run方法或弹出控件的代码隐藏中的事件处理程序?
这是我的代码到目前为止。如果尝试创建控件时出现错误,说明无法找到带有ID的项目。我刚刚猜测弹出控件想要了解的项目。
protected void Run(Sitecore.Web.UI.Sheer.ClientPipelineArgs args)
{
if (args.IsPostBack)
{
if (args.HasResult)
{ // normally code here would run when the dialog box is completed by the user. Is that so in this case?
}
}
else
{
Sitecore.Context.ClientPage.ClientResponse.ShowControlPopup("F3684C4C-D9EF-4796-A471-5B05553119B6",
"http://mysite/dummy.aspx",
"B8D503D0-AEBE-43AE-B924-C3849F03E90D");
args.WaitForPostBack();
}
}
干杯,
詹姆斯。
Sitecore的6.2转091012/Win7的32位/ IIS7 /的SQLExpress 2008(仅限本地开发)
纯粹的UI只是完全无证......是我一直抱怨到Sitecore的几次,但我还没有看到任何更新。如果你还没有这样做,我建议为此打开一个支持请求。 – Bryan
我发现实现Sheer组件的最简单方法是找到一个接近你想要的对话框,然后使用反射器来复制和修改你需要的。例如,在物理文件中搜索“设置发布”以查找发布限制对话框。打开XML文件并查找“Codebeside”类。然后是从功能区挖掘命令并复制拨打电话的方式。 – dmgdotnet
感谢Bryan&dmgdotnet。我用Sitecore打开了一个支持案例。我会发布他们提供的任何有用的答案。我会看看Sitecore的代码,但我不确定我现在有空。我可能只是创建一些不同的命令来处理可能出现的不同场景。 –