diff --git a/src/BootstrapBlazor.Server/Components/Samples/TreeViews.razor b/src/BootstrapBlazor.Server/Components/Samples/TreeViews.razor index 5f8889ffe513df707028dc4bda48dfbdce4ed150..1877a59d31e478fd80d28bdfcc32eaeaabd64bec 100644 --- a/src/BootstrapBlazor.Server/Components/Samples/TreeViews.razor +++ b/src/BootstrapBlazor.Server/Components/Samples/TreeViews.razor @@ -58,7 +58,11 @@ Introduction="@Localizer["TreeViewTreeDisableIntro"]" Name="TreeDisable">
@((MarkupString)Localizer["TreeViewTreeDisableDescription"].Value)
- +
+ + +
+ > Items { get; set; } = TreeFoo.GetTreeItems(); @@ -295,6 +297,22 @@ public sealed partial class TreeViews Type = "Func", ValueList = " — ", DefaultValue = " — " + }, + new() + { + Name = nameof(TreeView.IsDisabled), + Description = "Disable tree view", + Type = "bool", + ValueList = "true|false", + DefaultValue = "false" + }, + new() + { + Name = nameof(TreeView.DisableCanExpand), + Description = "Whether to expand when the control node is disabled", + Type = "bool", + ValueList = "true|false", + DefaultValue = "false" } ]; diff --git a/src/BootstrapBlazor.Server/Locales/en-US.json b/src/BootstrapBlazor.Server/Locales/en-US.json index b01391bfa7a7bbe4c3abcbe94c382ee7d713b9de..9fd2b7da77599bdb6c041ff2c5df2f5f9357a249 100644 --- a/src/BootstrapBlazor.Server/Locales/en-US.json +++ b/src/BootstrapBlazor.Server/Locales/en-US.json @@ -663,7 +663,9 @@ "TreeViewSetActiveTitle": "Set Active Node", "TreeViewSetActiveIntro": "Set the currently active node by calling the SetActiveItem method", "TreeViewSetActiveDisplayText": "Current Active Node", - "TreeViewsAttribute": "TreeItem property" + "TreeViewsAttribute": "TreeItem property", + "TreeViewsDisableWholeTreeView": "Whole TreeView disable", + "TreeViewsWhetherToExpandWhenDisable": "Whether to expand when the control node is disabled" }, "BootstrapBlazor.Server.Components.Samples.Trees": { "TreeIntro": "

Obsolete,The TreeView provides more functions", diff --git a/src/BootstrapBlazor.Server/Locales/zh-CN.json b/src/BootstrapBlazor.Server/Locales/zh-CN.json index 786e3f09e9beb76fb8bc10737299c5156c62da2c..12aef4b60e8357e504613c80072ce51db887d836 100644 --- a/src/BootstrapBlazor.Server/Locales/zh-CN.json +++ b/src/BootstrapBlazor.Server/Locales/zh-CN.json @@ -663,7 +663,9 @@ "TreeViewSetActiveTitle": "设置激活节点", "TreeViewSetActiveIntro": "通过调用 SetActiveItem 方法设置当前激活节点", "TreeViewSetActiveDisplayText": "当前激活节点", - "TreeViewsAttribute": "TreeItem 属性" + "TreeViewsAttribute": "TreeItem 属性", + "TreeViewsDisableWholeTreeView": "是否禁用整个TreeView", + "TreeViewsWhetherToExpandWhenDisable": "禁用时候是否可以展开或折叠子节点" }, "BootstrapBlazor.Server.Components.Samples.Trees": { "TreeIntro": "

本组件已弃用,请使用新组件 TreeView 提供更多功能", diff --git a/src/BootstrapBlazor/Components/TreeView/TreeView.razor b/src/BootstrapBlazor/Components/TreeView/TreeView.razor index d4538b4f22f2818474a207def4794de0dc7106db..0a46dab98867da9899f06911a27ab425e65f166b 100644 --- a/src/BootstrapBlazor/Components/TreeView/TreeView.razor +++ b/src/BootstrapBlazor/Components/TreeView/TreeView.razor @@ -43,7 +43,7 @@ else @if (ShowCheckbox) { - } diff --git a/src/BootstrapBlazor/Components/TreeView/TreeView.razor.cs b/src/BootstrapBlazor/Components/TreeView/TreeView.razor.cs index d6c946bd01d106f25f6396266e72cdc2af708737..7659866c4df1bb1e8481263e5595a085392de0a0 100644 --- a/src/BootstrapBlazor/Components/TreeView/TreeView.razor.cs +++ b/src/BootstrapBlazor/Components/TreeView/TreeView.razor.cs @@ -34,7 +34,7 @@ public partial class TreeView : IModelEqualityComparer /// /// /// - private static string? GetIconClassString(TreeViewItem item) => CssBuilder.Default("tree-icon") + private string? GetIconClassString(TreeViewItem item) => CssBuilder.Default("tree-icon") .AddClass(item.Icon) .AddClass(item.ExpandIcon, item.IsExpand && !string.IsNullOrEmpty(item.ExpandIcon)) .Build(); @@ -57,7 +57,7 @@ public partial class TreeView : IModelEqualityComparer /// private string? GetItemClassString(TreeViewItem item) => CssBuilder.Default("tree-item") .AddClass("active", ActiveItem == item) - .AddClass("disabled", item.IsDisabled) + .AddClass("disabled", !DisableCanExpand && (IsDisabled || item.IsDisabled)) .Build(); ///

@@ -65,23 +65,35 @@ public partial class TreeView : IModelEqualityComparer /// /// /// - private static string? GetTreeClassString(TreeViewItem item) => CssBuilder.Default("tree-ul") + private string? GetTreeClassString(TreeViewItem item) => CssBuilder.Default("tree-ul") .AddClass("show", item.IsExpand) .Build(); - private static string? GetNodeClassString(TreeViewItem item) => CssBuilder.Default("tree-node") - .AddClass("disabled", item.IsDisabled) + private string? GetNodeClassString(TreeViewItem item) => CssBuilder.Default("tree-node") + .AddClass("disabled", !DisableCanExpand && (IsDisabled || item.IsDisabled)) .Build(); - private static bool TriggerNodeArrow(TreeViewItem item) => !item.IsDisabled && (item.HasChildren || item.Items.Any()); + private bool TriggerNodeArrow(TreeViewItem item) => (DisableCanExpand || !(IsDisabled || item.IsDisabled)) && (item.HasChildren || item.Items.Any()); - private static bool TriggerNodeLabel(TreeViewItem item) => !item.IsDisabled; + private bool TriggerNodeLabel(TreeViewItem item) => !(IsDisabled || item.IsDisabled); /// /// 获得/设置 选中节点 默认 null /// private TreeViewItem? ActiveItem { get; set; } + /// + /// 是否整个TreeView禁用 默认 false + /// + [Parameter] + public bool IsDisabled { get; set; } = false; + + /// + /// 当Disable时候是否允许展开折叠节点 默认 false + /// + [Parameter] + public bool DisableCanExpand { get; set; } = false; + /// /// 获得/设置 是否为手风琴效果 默认为 false ///