所以我为sitecore创建了一个小的自定义对话框应用程序,它通过一个带状按钮调用,该按钮触发一个命令,该命令又触发我的自定义控件。
我的命令(用于触发打开的对话框触发器):
var uri = UIUtil.GetUri("control:LanguageCopyModule");
var id = context.Items[0].ID.ToString();
var la = context.Items[0].Language;
var url = string.Format("{0}&id={1}&la={2}", uri, id, la.Name);
SheerResponse.ShowModalDialog(url);
它在弹出窗口中生成的URL:
直到这一点,它完全可以正常工作,但现在当它打开我的xml控制窗口时,它只是保持空白。
这是xml背后的代码:
<control xmlns:def="Definition" xmlns="http://schemas.sitecore.net/Visual-Studio-Intellisense">
<LanguageCopyModule>
<FormDialog Icon="Applications/16x16/paste.png" Header="Language Copy Module" Text="Copy field values between different languages." OKButton="Copy" CancelButton="Cancel">
<CodeBeside Type="MyAssembly.Modules.LanguageCopyModule.LanguageCopyModule,MyAssembly.Modules"/>
<GridPanel Columns="2">
<GridPanel.ColumnStyles>
<Column Width="70%" />
<Column Width="30%" />
</GridPanel.ColumnStyles>
<GridPanel.RowStyles>
<Row Height="100%" />
</GridPanel.RowStyles>
<!-- Fields -->
<FlowPanel>
<Border BorderThickness="1" BorderBrush="black">
<Text>Text</Text>
</Border>
</FlowPanel>
<!-- Languages -->
<FlowPanel>
<Border BorderThickness="1" BorderBrush="black">
<Button>Button</Button>
</Border>
</FlowPanel>
</GridPanel>
</FormDialog>
</LanguageCopyModule>
</control>
关于为什么它仍然是空的任何想法?几乎找不到文档,可能是我错过了一些东西。
感谢您的帮助!
答案 0 :(得分:7)
这由web.config中的<controlSources>
元素规定。您可以将XML控件放在那里提到的任何文件夹中,也可以添加其他控件源。请注意,为此目的可以预见一个特殊的“覆盖”文件夹。如果你仍然需要添加你自己的控制源,请记住,从Sitecore 6.0可以在一个可插入的配置中完成(这里有官方的Sitecore文档,还有几篇博文)。
答案 1 :(得分:2)
我发现了这个问题:.xml文件需要位于文件系统中/ sitecore / shell下的某个位置。