umbraco - comment obtenir tous les nœuds par Type de Document
Comment puis-je obtenir tous les nœuds spécifiques Document Type
?
Par exemple, je veux aller dans le code derrière tous les nœuds avec Document Type: s3Article
. Comment puis-je faire cela?
Nouvelles informations:
IEnumerable<Node> nodes = uQuery.GetNodesByType("s3Article").Where(x => x.NiceUrl.Contains("en"));
lvArticles.DataSource = nodes;
lvArticles.DataBind();
C'est mon code. J'ai eu à utiliser Where(x => x.NiceUrl.Contains("en"))
, parce que j'ai 2 version en langue - sans Where
je reçois des nœuds à partir de tous les catalogues avec doctype s3Article
, mais je veux obtenir uniquement à partir d'une version en langue.
Problème est ici:
<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")%>
Système.Web.HttpException: Liaison De Données:
'umbraco.présentation.nodeFactory.Le nœud "ne contient pas une propriété nommée "titre".
Le même problème se produit avec le titre, img, l'article, l'auteur. Seul l'ID œuvres de nice. Comment le résoudre?
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser le uQuery
GetNodesByType(string ou int)
méthode:Alternativement, vous pouvez utiliser une méthode d'extension pour obtenir tous les nœuds descendants et ensuite de la requête, par type, comme dans la réponse suivante:
Umbraco 4.6+ - Comment obtenir tous les nœuds par doctype en C#?
Vous pouvez l'utiliser pour databind à un contrôle à l'intérieur d'un usercontrol comme suit:
Seulement vous aurait besoin de dépouiller le html, convertir l'id de l'image à une url, etc. dans l'instruction select ainsi...
Comme Shannon Deminick mentionne, uQuery est quelque peu obsolète. ExamineManager sera le plus rapide en temps d'exécution. https://our.umbraco.org/forum/developers/api-questions/45777-uQuery-vs-Examine-vs-IPublishedContent-for-Querying
J'ai aussi trouvé la méthode la plus simple et la plus lisible de l'approche à utiliser ExamineManager du générateur de recherche. Très flexible, et a l'avantage d'être très lisible en raison de la fluidité du Générateur de modèle de l'U de l'Équipe utilisés.
Cette recherche TOUS les nœuds, donc si vous avez besoin à l'intérieur d'une branche spécifique, vous pouvez utiliser .ParentId(1234), etc.
Je préfère les nœuds de type, mais vous pouvez aussi utiliser la fonction "Recherche()" au lieu de "TypedSearch()" si vous préférez dynamique des nœuds.
Autre exemple, l'inclusion d'une valeur de propriété "myPropValue" == "ABC",
Ref - https://our.umbraco.org/documentation/reference/querying/umbracohelper/