Sitecore树列表数据源

编程入门 行业动态 更新时间:2024-10-26 04:20:10
本文介绍了Sitecore树列表数据源-VersionExist的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

在Sitecore TreeList控件中,我只想获取列出的元素,这些元素具有该语言的版本。

我进行了搜索,发现有用于包括/排除项目/模板的参数。但是我不能在这样的情况下让步。Count>0

是否可以通过将参数传递到模板的数据源字段来完成此操作?

还是需要覆盖TreeList控件?

谢谢

推荐答案

这似乎可以工作,但我没有对其进行广泛测试.

首先创建一个从MasterDataView继承的类。请注意,我没有费心显式地获取特定语言的项目,因为您只关心基于当前上下文语言进行过滤。如果您想更明确地说明这一点,请参阅以下答案:stackoverflow/a/8232087/2911685

public class LanguageFilteringMasterDataView : MasterDataView { protected override void GetChildItems(ItemCollection items, Item item) { base.GetChildItems(items, item); this.FilterItemsWithNoVersionInLanguage(items); } protected virtual void FilterItemsWithNoVersionInLanguage(ItemCollection items) { for (var i = items.Count - 1; i >= 0; i--) { if (items[i].Versions.Count <= 0) { items.RemoveAt(i); } } } }

然后使用配置包括:

注册此类 <dataviews> <dataview name="LanguageFilteredMaster" assembly="sc70" type="sc70.Controls.LanguageFilteringMasterDataView" Parameters=""/> </dataviews>

然后创建自定义TreeList类:

public class LanguageFilteringTreelist : TreeList { private const string DataViewName = "LanguageFilteredMaster"; protected override void OnLoad(EventArgs args) { base.OnLoad(args); var dataContext = this.FindDataContext(); if (dataContext != null) { dataContext.DataViewName = DataViewName; } } protected virtual DataContext FindDataContext() { if (this.Controls.Count <= 0) { return null; } var child = this.Controls[0]; return child.Controls.OfType<DataContext>().FirstOrDefault(); } }

最后,转到Core数据库并将此类注册为新字段类型。

更新

如注释中所述,上述解决方案在展开子项时无法正常工作。它将基于外壳的当前上下文语言过滤,而不是通过当前条目版本的语言进行过滤。这是因为TreeviewEx控件是TreeList控件的子控件,它只查看语言参数的查询字符串。如果没有找到,则默认为上下文语言。幸运的是,我们可以对javascript进行非常简单的更改,使其也查找隐藏的scLanguage字段。该文件位于sitecreshellControlsTreeviewExTreeviewEx.js。更改onTreeGlyphClick函数中的第63行。

旧:

var contentLanguage = Sitecore.getUrlParameterValue("la");

新建:

var contentLanguage = Sitecore.getUrlParameterValue("la") || $F('scLanguage');

更多推荐

Sitecore树列表数据源

本文发布于:2023-08-05 21:37:03,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1308201.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:数据源   列表   Sitecore

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!