From f583ab938968f8f31ba5ade2217e4262d8ed5bcb Mon Sep 17 00:00:00 2001 From: XiaoDD <2238876055@qq.com> Date: Tue, 26 Dec 2023 03:30:47 +0000 Subject: [PATCH 1/9] update src/BootstrapBlazor/Components/TreeView/TreeView.razor.cs. --- src/BootstrapBlazor/Components/TreeView/TreeView.razor.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/BootstrapBlazor/Components/TreeView/TreeView.razor.cs b/src/BootstrapBlazor/Components/TreeView/TreeView.razor.cs index 0ff1365cb..ea00b06af 100644 --- a/src/BootstrapBlazor/Components/TreeView/TreeView.razor.cs +++ b/src/BootstrapBlazor/Components/TreeView/TreeView.razor.cs @@ -1,4 +1,4 @@ -// Copyright (c) Argo Zhang (argo@163.com). All rights reserved. +// Copyright (c) Argo Zhang (argo@163.com). All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. // Website: https://www.blazor.zone or https://argozhang.github.io/ @@ -80,7 +80,7 @@ public partial class TreeView : IModelEqualityComparer /// /// 获得/设置 选中节点 默认 null /// - private TreeViewItem? ActiveItem { get; set; } + public TreeViewItem? ActiveItem { get; set; } /// /// 获得/设置 是否为手风琴效果 默认为 false -- Gitee From a7f7c6e1e5d41ca6a07a68b0d10ab96a8967773c Mon Sep 17 00:00:00 2001 From: XiaoDD <2238876055@qq.com> Date: Wed, 27 Dec 2023 14:05:21 +0800 Subject: [PATCH 2/9] #I8RDSN --- .../Components/TreeView/TreeView.razor.cs | 13 +++++++++++-- test/UnitTest/Components/TreeViewTest.cs | 16 ++++++++++++++++ 2 files changed, 27 insertions(+), 2 deletions(-) diff --git a/src/BootstrapBlazor/Components/TreeView/TreeView.razor.cs b/src/BootstrapBlazor/Components/TreeView/TreeView.razor.cs index ea00b06af..ee816bee8 100644 --- a/src/BootstrapBlazor/Components/TreeView/TreeView.razor.cs +++ b/src/BootstrapBlazor/Components/TreeView/TreeView.razor.cs @@ -1,4 +1,4 @@ -// Copyright (c) Argo Zhang (argo@163.com). All rights reserved. +// Copyright (c) Argo Zhang (argo@163.com). All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. // Website: https://www.blazor.zone or https://argozhang.github.io/ @@ -80,7 +80,7 @@ public partial class TreeView : IModelEqualityComparer /// /// 获得/设置 选中节点 默认 null /// - public TreeViewItem? ActiveItem { get; set; } + private TreeViewItem? ActiveItem { get; set; } /// /// 获得/设置 是否为手风琴效果 默认为 false @@ -322,6 +322,15 @@ public partial class TreeView : IModelEqualityComparer StateHasChanged(); } + /// + /// 设置选中节点 + /// + public void SetActiveItem(TreeViewItem item) + { + ActiveItem = item; + StateHasChanged(); + } + private static CheckboxState ToggleCheckState(CheckboxState state) => state switch { CheckboxState.Checked => CheckboxState.UnChecked, diff --git a/test/UnitTest/Components/TreeViewTest.cs b/test/UnitTest/Components/TreeViewTest.cs index ce7e1467f..3911c85cd 100644 --- a/test/UnitTest/Components/TreeViewTest.cs +++ b/test/UnitTest/Components/TreeViewTest.cs @@ -59,6 +59,22 @@ public class TreeViewTest : BootstrapBlazorTestBase Assert.Equal("tree-item active", nodes[0].ClassName); } + [Fact] + public void Items_SetActive() + { + var items = TreeFoo.GetTreeItems(); + var cut = Context.RenderComponent>(pb => + { + pb.Add(a => a.Items, items); + }); + + cut.InvokeAsync(()=>cut.Instance.SetActiveItem(items[0])); + + var nodes = cut.FindAll(".tree-view > .tree-root > .tree-item"); + Assert.Equal(3, nodes.Count); + Assert.Equal("tree-item active", nodes[0].ClassName); + } + [Fact] public async Task OnClick_Checkbox_Ok() { -- Gitee From 0cb8ffe2553d81991236f7e5dbf6dd2532a9d4ed Mon Sep 17 00:00:00 2001 From: XiaoDD <2238876055@qq.com> Date: Wed, 27 Dec 2023 14:19:18 +0800 Subject: [PATCH 3/9] #I8RDSN --- src/BootstrapBlazor/Components/TreeView/TreeView.razor.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/BootstrapBlazor/Components/TreeView/TreeView.razor.cs b/src/BootstrapBlazor/Components/TreeView/TreeView.razor.cs index ee816bee8..5f2f35b5c 100644 --- a/src/BootstrapBlazor/Components/TreeView/TreeView.razor.cs +++ b/src/BootstrapBlazor/Components/TreeView/TreeView.razor.cs @@ -328,6 +328,7 @@ public partial class TreeView : IModelEqualityComparer public void SetActiveItem(TreeViewItem item) { ActiveItem = item; + ActiveItem?.SetParentExpand, TItem>(true); StateHasChanged(); } -- Gitee From 183f6c8bca2ede6eda00d6afae7d64c0ed5b8840 Mon Sep 17 00:00:00 2001 From: XiaoDD <2238876055@qq.com> Date: Wed, 27 Dec 2023 15:42:01 +0800 Subject: [PATCH 4/9] #I8RDSN --- .../Components/Samples/TreeViews.razor | 11 ++++++++ .../Components/Samples/TreeViews.razor.cs | 26 +++++++++++++++++++ src/BootstrapBlazor.Server/Data/TreeFoo.cs | 19 +++++++++----- src/BootstrapBlazor.Server/Locales/en.json | 3 +++ src/BootstrapBlazor.Server/Locales/zh.json | 3 +++ .../Components/TreeView/TreeView.razor.cs | 4 +-- 6 files changed, 57 insertions(+), 9 deletions(-) diff --git a/src/BootstrapBlazor.Server/Components/Samples/TreeViews.razor b/src/BootstrapBlazor.Server/Components/Samples/TreeViews.razor index b4123bd28..0823af50d 100644 --- a/src/BootstrapBlazor.Server/Components/Samples/TreeViews.razor +++ b/src/BootstrapBlazor.Server/Components/Samples/TreeViews.razor @@ -132,6 +132,17 @@ + +
+
+ -
-
- -
- diff --git a/src/BootstrapBlazor.Server/Components/Samples/TreeViews.razor.cs b/src/BootstrapBlazor.Server/Components/Samples/TreeViews.razor.cs index df24ca65f..72e2efaee 100644 --- a/src/BootstrapBlazor.Server/Components/Samples/TreeViews.razor.cs +++ b/src/BootstrapBlazor.Server/Components/Samples/TreeViews.razor.cs @@ -41,10 +41,6 @@ public sealed partial class TreeViews private List> CheckedItems2 { get; set; } = TreeFoo.GetTreeItems(); - private List SelectedItems { get; set; } = TreeFoo.GetItems().Select(x=>new SelectedItem(x.Id,x.Text)).ToList(); - - private TreeView? SetActiveTreeView { get; set; } - private List>? AsyncItems { get; set; } private Foo Model => Foo.Generate(LocalizerFoo); @@ -169,28 +165,6 @@ public sealed partial class TreeViews AsyncItems[2].HasChildren = true; } - private Task SelectedItemOnChanged(SelectedItem selectedItem) - { - var treeViewItem= FindTreeViewItem(Items, item => item.Value.Id == selectedItem.Value); - SetActiveTreeView?.SetActiveItem(treeViewItem); - StateHasChanged(); - return Task.CompletedTask; - } - - private TreeViewItem? FindTreeViewItem(IEnumerable> source, Func, bool> func) - { - var ret = source.FirstOrDefault(func); - if (ret == null) - { - var items = source.SelectMany(e => e.Items); - if (items.Any()) - { - ret = FindTreeViewItem(items, func); - } - } - return ret; - } - private class CustomerTreeItem : ComponentBase { [Inject] diff --git a/src/BootstrapBlazor.Server/Data/TreeFoo.cs b/src/BootstrapBlazor.Server/Data/TreeFoo.cs index 0371b0e30..e14cbc504 100644 --- a/src/BootstrapBlazor.Server/Data/TreeFoo.cs +++ b/src/BootstrapBlazor.Server/Data/TreeFoo.cs @@ -20,9 +20,14 @@ class TreeFoo public bool IsActive { get; set; } - public static List GetItems() + /// + /// TreeFoo 树状数据集 + /// + /// 请勿更改,单元测试使用 + /// + public static List> GetTreeItems() { - return new List + var items = new List { new TreeFoo() { Text = "navigation one", Id = "1010", Icon = "fa-solid fa-font-awesome" }, new TreeFoo() { Text = "Navigation two", Id = "1020", Icon = "fa-solid fa-font-awesome" }, @@ -44,16 +49,6 @@ class TreeFoo new TreeFoo() { Text = "Sub menu 2", Id = "1140", ParentId = "1100", Icon = "fa-solid fa-font-awesome" }, new TreeFoo() { Text = "Sub menu 3", Id = "1150", ParentId = "1100", Icon = "fa-solid fa-font-awesome" } }; - } - - /// - /// TreeFoo 树状数据集 - /// - /// 请勿更改,单元测试使用 - /// - public static List> GetTreeItems() - { - var items = GetItems(); // 算法获取属性结构数据 return CascadingTree(items).ToList(); diff --git a/src/BootstrapBlazor.Server/Locales/en.json b/src/BootstrapBlazor.Server/Locales/en.json index 55346a60e..9b7e0a1b0 100644 --- a/src/BootstrapBlazor.Server/Locales/en.json +++ b/src/BootstrapBlazor.Server/Locales/en.json @@ -658,9 +658,6 @@ "TreeViewShowSkeletonTitle": "Loading skeleton screen", "TreeViewShowSkeletonIntro": "By setting ShowSkeleton, the component displays the skeleton screen when the data is loaded asynchronously", "TreeViewShowSkeletonButtonText": "Asynchronous loading", - "TreeViewSetActiveTitle": "Set Active Node", - "TreeViewSetActiveIntro": "Set the currently active node by calling the SetActiveItem method", - "TreeViewSetActiveDisplayText": "Current Active Node", "TreeViewsAttribute": "TreeItem property" }, "BootstrapBlazor.Server.Components.Samples.Trees": { diff --git a/src/BootstrapBlazor.Server/Locales/zh.json b/src/BootstrapBlazor.Server/Locales/zh.json index ced57aac9..0c6a4dd79 100644 --- a/src/BootstrapBlazor.Server/Locales/zh.json +++ b/src/BootstrapBlazor.Server/Locales/zh.json @@ -658,9 +658,6 @@ "TreeViewShowSkeletonTitle": "加载骨架屏", "TreeViewShowSkeletonIntro": "通过设置 ShowSkeleton 使异步加载数据时组件显示骨架屏", "TreeViewShowSkeletonButtonText": "异步加载", - "TreeViewSetActiveTitle": "设置激活节点", - "TreeViewSetActiveIntro": "通过调用 SetActiveItem 方法设置当前激活节点", - "TreeViewSetActiveDisplayText": "当前激活节点", "TreeViewsAttribute": "TreeItem 属性" }, "BootstrapBlazor.Server.Components.Samples.Trees": { diff --git a/src/BootstrapBlazor/Components/TreeView/TreeView.razor.cs b/src/BootstrapBlazor/Components/TreeView/TreeView.razor.cs index 23996f993..5f2f35b5c 100644 --- a/src/BootstrapBlazor/Components/TreeView/TreeView.razor.cs +++ b/src/BootstrapBlazor/Components/TreeView/TreeView.razor.cs @@ -323,9 +323,9 @@ public partial class TreeView : IModelEqualityComparer } /// - /// 设置激活节点 + /// 设置选中节点 /// - public void SetActiveItem(TreeViewItem? item) + public void SetActiveItem(TreeViewItem item) { ActiveItem = item; ActiveItem?.SetParentExpand, TItem>(true); -- Gitee From 926d22702d0ce125e5ab71483a3a6d669c42684f Mon Sep 17 00:00:00 2001 From: XiaoDD <2238876055@qq.com> Date: Wed, 17 Jan 2024 09:10:12 +0800 Subject: [PATCH 6/9] Revert "#I8RDSN" This reverts commit 0cb8ffe2553d81991236f7e5dbf6dd2532a9d4ed. --- src/BootstrapBlazor/Components/TreeView/TreeView.razor.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/src/BootstrapBlazor/Components/TreeView/TreeView.razor.cs b/src/BootstrapBlazor/Components/TreeView/TreeView.razor.cs index 5f2f35b5c..ee816bee8 100644 --- a/src/BootstrapBlazor/Components/TreeView/TreeView.razor.cs +++ b/src/BootstrapBlazor/Components/TreeView/TreeView.razor.cs @@ -328,7 +328,6 @@ public partial class TreeView : IModelEqualityComparer public void SetActiveItem(TreeViewItem item) { ActiveItem = item; - ActiveItem?.SetParentExpand, TItem>(true); StateHasChanged(); } -- Gitee From 95d4f67caf32c5af3e1c056c5c991b398c3d2391 Mon Sep 17 00:00:00 2001 From: XiaoDD <2238876055@qq.com> Date: Wed, 17 Jan 2024 09:10:16 +0800 Subject: [PATCH 7/9] Revert "#I8RDSN" This reverts commit a7f7c6e1e5d41ca6a07a68b0d10ab96a8967773c. --- .../Components/TreeView/TreeView.razor.cs | 13 ++----------- test/UnitTest/Components/TreeViewTest.cs | 16 ---------------- 2 files changed, 2 insertions(+), 27 deletions(-) diff --git a/src/BootstrapBlazor/Components/TreeView/TreeView.razor.cs b/src/BootstrapBlazor/Components/TreeView/TreeView.razor.cs index ee816bee8..ea00b06af 100644 --- a/src/BootstrapBlazor/Components/TreeView/TreeView.razor.cs +++ b/src/BootstrapBlazor/Components/TreeView/TreeView.razor.cs @@ -1,4 +1,4 @@ -// Copyright (c) Argo Zhang (argo@163.com). All rights reserved. +// Copyright (c) Argo Zhang (argo@163.com). All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. // Website: https://www.blazor.zone or https://argozhang.github.io/ @@ -80,7 +80,7 @@ public partial class TreeView : IModelEqualityComparer /// /// 获得/设置 选中节点 默认 null /// - private TreeViewItem? ActiveItem { get; set; } + public TreeViewItem? ActiveItem { get; set; } /// /// 获得/设置 是否为手风琴效果 默认为 false @@ -322,15 +322,6 @@ public partial class TreeView : IModelEqualityComparer StateHasChanged(); } - /// - /// 设置选中节点 - /// - public void SetActiveItem(TreeViewItem item) - { - ActiveItem = item; - StateHasChanged(); - } - private static CheckboxState ToggleCheckState(CheckboxState state) => state switch { CheckboxState.Checked => CheckboxState.UnChecked, diff --git a/test/UnitTest/Components/TreeViewTest.cs b/test/UnitTest/Components/TreeViewTest.cs index 3911c85cd..ce7e1467f 100644 --- a/test/UnitTest/Components/TreeViewTest.cs +++ b/test/UnitTest/Components/TreeViewTest.cs @@ -59,22 +59,6 @@ public class TreeViewTest : BootstrapBlazorTestBase Assert.Equal("tree-item active", nodes[0].ClassName); } - [Fact] - public void Items_SetActive() - { - var items = TreeFoo.GetTreeItems(); - var cut = Context.RenderComponent>(pb => - { - pb.Add(a => a.Items, items); - }); - - cut.InvokeAsync(()=>cut.Instance.SetActiveItem(items[0])); - - var nodes = cut.FindAll(".tree-view > .tree-root > .tree-item"); - Assert.Equal(3, nodes.Count); - Assert.Equal("tree-item active", nodes[0].ClassName); - } - [Fact] public async Task OnClick_Checkbox_Ok() { -- Gitee From 3f102e54af876d63cc00a19020015bcd65b82823 Mon Sep 17 00:00:00 2001 From: XiaoDD <2238876055@qq.com> Date: Wed, 17 Jan 2024 09:10:20 +0800 Subject: [PATCH 8/9] Revert "update src/BootstrapBlazor/Components/TreeView/TreeView.razor.cs." This reverts commit f583ab938968f8f31ba5ade2217e4262d8ed5bcb. --- src/BootstrapBlazor/Components/TreeView/TreeView.razor.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/BootstrapBlazor/Components/TreeView/TreeView.razor.cs b/src/BootstrapBlazor/Components/TreeView/TreeView.razor.cs index ea00b06af..0ff1365cb 100644 --- a/src/BootstrapBlazor/Components/TreeView/TreeView.razor.cs +++ b/src/BootstrapBlazor/Components/TreeView/TreeView.razor.cs @@ -1,4 +1,4 @@ -// Copyright (c) Argo Zhang (argo@163.com). All rights reserved. +// Copyright (c) Argo Zhang (argo@163.com). All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. // Website: https://www.blazor.zone or https://argozhang.github.io/ @@ -80,7 +80,7 @@ public partial class TreeView : IModelEqualityComparer /// /// 获得/设置 选中节点 默认 null /// - public TreeViewItem? ActiveItem { get; set; } + private TreeViewItem? ActiveItem { get; set; } /// /// 获得/设置 是否为手风琴效果 默认为 false -- Gitee From ecdaada381eaa71fc883f891b871a871fd1fd9dd Mon Sep 17 00:00:00 2001 From: XiaoDD <2238876055@qq.com> Date: Wed, 17 Jan 2024 09:22:09 +0800 Subject: [PATCH 9/9] =?UTF-8?q?=E4=B8=BA=E6=A8=A1=E6=80=81=E6=A1=86?= =?UTF-8?q?=E7=9A=84=E9=BB=98=E8=AE=A4=E4=BF=9D=E5=AD=98=E6=8C=89=E9=92=AE?= =?UTF-8?q?SaveButton=E6=B7=BB=E5=8A=A0=E5=BC=82=E6=AD=A5UI=E5=8F=82?= =?UTF-8?q?=E6=95=B0IsAsync?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/BootstrapBlazor.Server/Components/Samples/Modals.razor | 2 +- .../Components/Samples/Modals.razor.cs | 6 ++++++ src/BootstrapBlazor/Components/Modal/ModalDialog.razor | 2 +- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/BootstrapBlazor.Server/Components/Samples/Modals.razor b/src/BootstrapBlazor.Server/Components/Samples/Modals.razor index d5abf13d2..ca01c610f 100644 --- a/src/BootstrapBlazor.Server/Components/Samples/Modals.razor +++ b/src/BootstrapBlazor.Server/Components/Samples/Modals.razor @@ -29,7 +29,7 @@ - +
@Localizer["ModalsNormalDefaultPopupText"]
diff --git a/src/BootstrapBlazor.Server/Components/Samples/Modals.razor.cs b/src/BootstrapBlazor.Server/Components/Samples/Modals.razor.cs index a9a3b303d..77ca0d679 100644 --- a/src/BootstrapBlazor.Server/Components/Samples/Modals.razor.cs +++ b/src/BootstrapBlazor.Server/Components/Samples/Modals.razor.cs @@ -69,6 +69,12 @@ public sealed partial class Modals return Task.CompletedTask; } + private async Task OnSaveAsync() + { + await Task.Delay(1000); + return true; + } + /// /// GetAttributes /// diff --git a/src/BootstrapBlazor/Components/Modal/ModalDialog.razor b/src/BootstrapBlazor/Components/Modal/ModalDialog.razor index 953e94518..6f182aaa3 100644 --- a/src/BootstrapBlazor/Components/Modal/ModalDialog.razor +++ b/src/BootstrapBlazor/Components/Modal/ModalDialog.razor @@ -53,7 +53,7 @@ } @if (ShowSaveButton) { - + } @if (FooterTemplate != null) { -- Gitee