首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >果园分类法-只获取父节点

果园分类法-只获取父节点
EN

Stack Overflow用户
提问于 2016-02-17 11:28:24
回答 1查看 243关注 0票数 0

我有一个两个级别的“颜色”分类,我希望将每个父节点显示为页面的一个单独的部分--用一个<h5>隔开。

我的问题是:如何获得分类法的父节点?其次,如何仅显示父项的子节点?

从调试中可以看出,段塞是附加在嵌套项(例如/parent-node/child-node)上的,但这是我所得到的。

--更新--我注意到父节点的路径值总是'/',然后子节点继续处理,直到下一个父节点被击中(只要我不手动排序)。

因此,我已经重写了我的形状如下:

代码语言:javascript
复制
@foreach (var term in terms)
{
    if (term.Path == "/")
    {
        //It's a top-level term - add header
        <h5>@term.Name</h5>
    }
    else
    {
        <div>@term.Name</div>
    }
}

这类工作,但现在的问题是,一切都是按字母顺序显示-而我的客户想要改变秩序。

我可以使用称重系统,但是我想要一些更健壮的东西。

任何帮助都非常感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-18 13:31:24

分类法和术语都是术语的容器。要只获取分类法中的父节点,可以选择以分类法作为容器的所有术语。

代码语言:javascript
复制
var parentTerms = terms.Where(t => t.Container == myTaxonomy);

您可以使用相同的方法来获取父项的子级(假设您只想深入一个层次,否则就必须递归地执行此操作)。

代码语言:javascript
复制
foreach(var parentTerm in parentTerms) {
    var childTerms = terms.Where(t => t.Container == parentTerm);
}

或者,您可以将Orchard的分类法服务注入到您的控制器中:

代码语言:javascript
复制
public class MyController : Controller {
    private readonly ITaxonomyService _taxonomyService;

    public MyController(ITaxonomyService _taxonomyService) {
        this._taxonomyService = _taxonomyService;
    }
}

这使您可以访问几个有用的方法,如

代码语言:javascript
复制
IEnumerable<TermPart> GetParents(TermPart term);
IEnumerable<TermPart> GetChildren(TermPart term);
IEnumerable<TermPart> GetChildren(TermPart term, bool includeParent);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35455438

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档