使用语言切换器选择语言后重新加载内容编辑器
Reload Content Editor after selecting language using language switcher
我正在尝试根据所选语言重新加载内容编辑器内容,因为我需要先过滤项目,然后用户才能看到它们。现在我可以通过继承 BucketDataView 并覆盖 GetChildItems 方法来过滤项目。
有没有办法在选择新语言后但在调用过滤器后刷新内容?
如果我的方法不对,我还能用什么?
谢谢!
卢卡斯。
这是可能的,而且效果很好。 John West 在我最喜欢的 post 之一中对此进行了很好的解释。
load-or-reload-an-item-in-the-sitecore-aspnet-cms
例如,您可以在命令中使用它,请参阅 dialoge-box-in-een-command 了解一些代码。
替代使用 url,参见 open-content-editor-on-specific-item
工作解决方案
创建新命令
[Serializable]
public class SelectLanguage : Languages
{
public override string GetClick(Sitecore.Shell.Framework.Commands.CommandContext context, string click)
{
Sitecore.Context.ClientPage.SendMessage(this, string.Format("item:refreshchildren(id={0})", Sitecore.ItemIDs.ContentRoot));
return base.GetClick(context, click);
}
}
更新\Website\App_Config\Commands.config
设置<command name="ribbon:languages" type="[Namespace]SelectLanguage ,[assembly]"/>
在这种情况下,我可以在语言切换器中选择新语言后更新内容树。
卢卡斯。
我正在尝试根据所选语言重新加载内容编辑器内容,因为我需要先过滤项目,然后用户才能看到它们。现在我可以通过继承 BucketDataView 并覆盖 GetChildItems 方法来过滤项目。
有没有办法在选择新语言后但在调用过滤器后刷新内容?
如果我的方法不对,我还能用什么?
谢谢!
卢卡斯。
这是可能的,而且效果很好。 John West 在我最喜欢的 post 之一中对此进行了很好的解释。 load-or-reload-an-item-in-the-sitecore-aspnet-cms
例如,您可以在命令中使用它,请参阅 dialoge-box-in-een-command 了解一些代码。
替代使用 url,参见 open-content-editor-on-specific-item
工作解决方案
创建新命令
[Serializable]
public class SelectLanguage : Languages
{
public override string GetClick(Sitecore.Shell.Framework.Commands.CommandContext context, string click)
{
Sitecore.Context.ClientPage.SendMessage(this, string.Format("item:refreshchildren(id={0})", Sitecore.ItemIDs.ContentRoot));
return base.GetClick(context, click);
}
}
更新\Website\App_Config\Commands.config
设置<command name="ribbon:languages" type="[Namespace]SelectLanguage ,[assembly]"/>
在这种情况下,我可以在语言切换器中选择新语言后更新内容树。
卢卡斯。