コード例 #1
0
ファイル: TreeView.cs プロジェクト: hazzik/telerikaspnetmvc
        private void WriteItem(TreeViewItem item, IHtmlNode parentTag, ITreeViewHtmlBuilder builder)
        {
            if (ItemAction != null)
            {
                ItemAction(item);
            }

            if (item.Visible)
            {
                if (item.IsAccessible(Authorization, ViewContext))
                {
                    var hasAccessibleChildren = item.Items.Any(x => x.Visible) && item.Items.IsAccessible(Authorization, ViewContext);

                    IHtmlNode itemTag = builder.ItemTag(item, hasAccessibleChildren).AppendTo(parentTag);

                    builder.ItemInnerContent(item).AppendTo(itemTag.Children[0]);

                    if (item.LoadOnDemand || ShowCheckBox || item.Value.HasValue())
                    {
                        builder.ItemHiddenInputValue(item).AppendTo(itemTag.Children[0]);
                    }

                    if (item.Template.HasValue())
                    {
                        builder.ItemContentTag(item).AppendTo(itemTag);
                    }
                    else if (hasAccessibleChildren)
                    {
                        IHtmlNode ul = builder.ChildrenTag(item).AppendTo(itemTag);

                        item.Items.Each(child => WriteItem(child, ul, builder));
                    }
                }
            }
        }