2009-06-10 13 views
22

Esecuzione di Umbraco 4x Sto creando un metodo di supporto in C# che posso chiamare ricorsivamente per creare categorie figlio di un particolare nodo (categoria).Umbraco - Ottieni Node per ID programmaticamente

Il metodo accetta un parentNodeID come parametro. Ho bisogno di recuperare le proprietà di quel nodo genitore. So che posso usare il metodo statico Node.GetCurrent() ma sto cercando qualcosa come Node.GetNodeById (parentNodeID).

Non riesco a vedere dove vive questo metodo. So che esiste il metodo umbraco.library.getNodeXMLbyId, ma mi dà la proprietà name del nodo?

Me Umbraco N00b :)

risposta

40

Si può solo fare

var node = new Node(nodeId). 

Mi ci volle un po 'per trovare troppo!

+0

Wicked. Sapevo che doveva essere qualcosa di semplice come quello. Cheer Sam! – autonomatt

+12

Sì, la scelta di Umbraco di utilizzare i costruttori per restituire istanze persistenti esistenti è piuttosto strana, e direi ... insolita. – nicodemus13

+2

+1 per entrambi. Mi ha aiutato. Avevo anche bisogno di aggiungere usando umbraco.NodeFactory; – Aximili

0

Si può anche fare

Document doc = new Document(nodeId) 

Questo funziona come Node ma ottiene i valori direttamente dal database invece della cache XML. Utilizzare questo se si sta per aggiornare i valori delle proprietà dei documenti.

+1

Ma sappi che per la lettura front-end devi sempre utilizzare il nodo XML pubblicato. –

+0

@Markus Molto vero. –

+0

Se lo fai in Umbraco 7 riceverai l'avviso - 'umbraco.cms.businesslogic.web.Document' è obsoleto: 'Obsolete, Use Umbraco.Core.Models.Content' – user1069816

1

Utilizzare questa

umbraco.NodeFactory.Node headerNode = uQuery.GetNode(NodeId); 

add namespace

using umbraco.NodeFactory;