gpt4 book ai didi

umbraco - 如何按文档类型获取所有节点

转载 作者:行者123 更新时间:2023-12-01 09:30:32 25 4
gpt4 key购买 nike

如何通过特定的Document Type获取所有节点?

例如,我想使用 Document Type: s3Article 获取所有节点后面的代码。我该怎么做?


新信息:

    IEnumerable<Node> nodes = uQuery.GetNodesByType("s3Article").Where(x => x.NiceUrl.Contains("en"));

lvArticles.DataSource = nodes;
lvArticles.DataBind();

这是我的代码。我不得不使用 Where(x => x.NiceUrl.Contains("en")),因为我有 2 个语言版本 - 没有 Where 我从所有目录接收节点使用 doctype s3Article,但我只想从一种语言版本中获取。

问题就在这里:

<a href='<%# umbraco.library.NiceUrl(Tools.NumericTools.tryParseInt( Eval("id"))) %>'><%# Eval("title")%></a>
<%# Tools.TextTools.makeIMGHTML("../.."+ Eval("img").ToString(),"180") %>
<%# umbraco.library.StripHtml(Limit(Eval("Article"), 1000))%>
<%# Eval("author")%>

System.Web.HttpException: DataBinding: 'umbraco.presentation.nodeFactory.Node' does not contain a property named 'title'.

标题、图片、文章、作者也会出现同样的问题。只有 ID 工作得很好。如何解决?

最佳答案

您可以使用 uQuery GetNodesByType(string or int)方法:

IEnumerable<Node> nodes = uQuery.GetNodesByType("s3Article");

或者,您可以使用扩展方法获取所有后代节点,然后按类型查询它们,如下面的答案:

Umbraco 4.6+ - How to get all nodes by doctype in C#?


您可以使用它来将数据绑定(bind)到用户控件中的控件,如下所示:

lvArticles.DataSource = nodes.Select(n => new {
ID: n.Id,
Title: n.GetProperty("title").Value,
Author: n.GetProperty("author").Value,
Article: n.GetProperty("article").Value,
Image: n.GetProperty("img").Value,
});
lvArticles.DataBind();

只有您需要在 select 语句中剥离 html、将图像 id 转换为 url 等...

关于umbraco - 如何按文档类型获取所有节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15951888/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com