al3*_*ull 4 items sitecore sitecore6
有没有办法,我很想念有Sitecore的退货原因或什么true的都Item.Axes.IsDescendantOf()和Item.Axes.IsAncestorOf()?
var test =
Sitecore.Context.Database.GetItem("{862B466A-079B-40E7-8661-FC064EC28574}");
Response.Write(test.Axes.IsAncestorOf(test));
Response.Write(test.Axes.IsDes(test));
Run Code Online (Sandbox Code Playgroud)
// True
// True
编辑:任何可能偶然发现这个答案寻找非包容性的人,IsAncestorOf或者IsDescendantOf下面是一些例子,我需要在新选类别的多选字段中找到最高级别的元素.
newsCategories
.Where(x => newsCategories
.Any(y => x != y && !x.Axes.IsDescendantOf(y)))
Run Code Online (Sandbox Code Playgroud)
和
newsCategories
.Where(x => newsCategories
.Any(y => x != y && !x.Axes.IsDescendantOf(y)))
Run Code Online (Sandbox Code Playgroud)
Sea*_*ney 10
我不得不相信,在Sitecore的方法应该不被命名为IsAncestorOf和IsDescendantOf.根据您的发现,并快速查看Sitecore代码,这些方法应该真正命名IsAncestorOrSelf并且IsDescendantOrSelf.
对于这个例子,
Sitecore.Data.Items.Item x = //some item;
Sitecore.Data.Items.Item y = //some item;
x.Axes.IsAncestorOf(y)
x.Axes.IsDescendantOf(y)
Run Code Online (Sandbox Code Playgroud)
的IsAncestorOf方法进行比较x.ID == y.ID.然后,它会保持比较x.ID的IDŸ的父,这就是为什么它应该被命名的IsAncestorOrSelf.
该IsDescendantOf方法是比较LongID路径的x起始LongID路径y.由于字符串始终以相同的字符串开头,我们再次看到应该命名此方法IsDescendantOrSelf.
仅供参考,LongID路径看起来像这样/{11111111-1111-1111-1111-111111111111}/{0DE95AE4-41AB-4D01-9EB0-67441B7C2450}/{110D559F-DEA5-42EA-9C1C-8A5DF7E70EF9},我怀疑是使用而不是/sitecore/content/home为了解决sitecore允许兄弟姐妹具有相同名称的事实.
| 归档时间: |
|
| 查看次数: |
1314 次 |
| 最近记录: |