現在、カスタム ツリーを作成しようとしていますが、ノードの子をレンダリングしようとすると問題が発生します。さまざまな記事/投稿を閲覧した後、私はこの時点にいます:
public override void Render(ref XmlTree tree)
{
List<Node> articles = NodeUtil.GetAllNodesOfDocumentType(-1, "Promoter");
Node article = articles.Where(p => p.CreatorID == UmbracoEnsuredPage.CurrentUser.Id).FirstOrDefault();
if(promo != null)
{
var dNode = XmlTreeNode.Create(this);
dNode.NodeID = article.Id.ToString();
dNode.Text = article.Name;
dNode.Icon = "doc.gif";
dNode.Action = "javascript:openArticle(" + article.Id + ")";
dNode.Source = article.Children.Count > 0 ? this.GetTreeServiceUrl("" + article.Id) : "";
tree.Add(dNode);
}
}
上記のコードは、現在のユーザーに属する記事を取得します (テストのため、各ユーザーは現時点で 1 つの記事しか持っていません)。次に、この記事の子を印刷しようとしましたが、目的の出力を取得する代わりに、次の結果が得られました。
Article Name
- Article Name
- Article Name
- Article Name
ノードを展開するたびに、同じノードをレンダリングしているように見え、延々と続きます。
次のように、ツリーサービスを使用する他の方法を見てきました。
TreeService treeService = new TreeService(...);
node.Source = treeService.GetServiceUrl();
しかし、0 引数を取る GetServiceUrl メソッドがないというエラーが表示されます。上記の方法は以前のバージョンのものだったと思いますか?