From 8c22b491ff1462e6ec609d83d75cd90812ca46dc Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Sat, 21 Jan 2023 00:34:03 +0800 Subject: [PATCH 1/5] refactor: remove TableElement reference of table element --- src/BootstrapBlazor/Components/Table/Table.razor | 2 +- .../Components/Table/Table.razor.FixHeader.cs | 6 ------ 2 files changed, 1 insertion(+), 7 deletions(-) diff --git a/src/BootstrapBlazor/Components/Table/Table.razor b/src/BootstrapBlazor/Components/Table/Table.razor index 30a99f97191..9831c413564 100644 --- a/src/BootstrapBlazor/Components/Table/Table.razor +++ b/src/BootstrapBlazor/Components/Table/Table.razor @@ -2,7 +2,7 @@ @typeparam TItem @inherits BootstrapModuleComponentBase -
+
@TableColumns?.Invoke(new TItem()) diff --git a/src/BootstrapBlazor/Components/Table/Table.razor.FixHeader.cs b/src/BootstrapBlazor/Components/Table/Table.razor.FixHeader.cs index e73cce32329..8bdcf61267f 100644 --- a/src/BootstrapBlazor/Components/Table/Table.razor.FixHeader.cs +++ b/src/BootstrapBlazor/Components/Table/Table.razor.FixHeader.cs @@ -6,12 +6,6 @@ namespace BootstrapBlazor.Components; public partial class Table { - /// - /// 获得/设置 Table 组件引用 - /// - /// - protected ElementReference TableElement { get; set; } - /// /// 获得/设置 Table 高度 默认为 null /// From c60323c044a5f42589a5a381e125c12e8637cbf9 Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Sat, 21 Jan 2023 00:34:53 +0800 Subject: [PATCH 2/5] =?UTF-8?q?refactor:=20=E7=A7=BB=E5=8A=A8=20Header=20?= =?UTF-8?q?=E7=9B=B8=E5=85=B3=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Components/Table/Table.razor.FixHeader.cs | 28 ------------------- .../Components/Table/Table.razor.cs | 20 +++++++++++++ 2 files changed, 20 insertions(+), 28 deletions(-) delete mode 100644 src/BootstrapBlazor/Components/Table/Table.razor.FixHeader.cs diff --git a/src/BootstrapBlazor/Components/Table/Table.razor.FixHeader.cs b/src/BootstrapBlazor/Components/Table/Table.razor.FixHeader.cs deleted file mode 100644 index 8bdcf61267f..00000000000 --- a/src/BootstrapBlazor/Components/Table/Table.razor.FixHeader.cs +++ /dev/null @@ -1,28 +0,0 @@ -// 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/ - -namespace BootstrapBlazor.Components; - -public partial class Table -{ - /// - /// 获得/设置 Table 高度 默认为 null - /// - /// 开启固定表头功能时生效 - [Parameter] - public int? Height { get; set; } - - /// - /// 获得/设置 固定表头 默认 false - /// - /// 固定表头时设置 即可出现滚动条,未设置时尝试自适应 - [Parameter] - public bool IsFixedHeader { get; set; } - - /// - /// 获得/设置 多表头模板 - /// - [Parameter] - public RenderFragment? MultiHeaderTemplate { get; set; } -} diff --git a/src/BootstrapBlazor/Components/Table/Table.razor.cs b/src/BootstrapBlazor/Components/Table/Table.razor.cs index 4822d117359..17da095e971 100644 --- a/src/BootstrapBlazor/Components/Table/Table.razor.cs +++ b/src/BootstrapBlazor/Components/Table/Table.razor.cs @@ -133,6 +133,26 @@ namespace BootstrapBlazor.Components; private static string? GetColWidthString(int? width) => width.HasValue ? $"width: {width.Value}px;" : null; + /// + /// 获得/设置 Table 高度 默认为 null + /// + /// 开启固定表头功能时生效 + [Parameter] + public int? Height { get; set; } + + /// + /// 获得/设置 固定表头 默认 false + /// + /// 固定表头时设置 即可出现滚动条,未设置时尝试自适应 + [Parameter] + public bool IsFixedHeader { get; set; } + + /// + /// 获得/设置 多表头模板 + /// + [Parameter] + public RenderFragment? MultiHeaderTemplate { get; set; } + /// /// 获得/设置 列拷贝 Tooltip 文字 /// From be3f8aed2d8e9a4d02b0c3e98736bef4bd876f69 Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Sat, 21 Jan 2023 00:58:19 +0800 Subject: [PATCH 3/5] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0=20CollapsedTopSe?= =?UTF-8?q?arch=20=E5=8F=82=E6=95=B0=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/BootstrapBlazor/Components/Table/Table.razor | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/BootstrapBlazor/Components/Table/Table.razor b/src/BootstrapBlazor/Components/Table/Table.razor index 9831c413564..83633714169 100644 --- a/src/BootstrapBlazor/Components/Table/Table.razor +++ b/src/BootstrapBlazor/Components/Table/Table.razor @@ -842,7 +842,7 @@ RenderFragment RenderRowExtendButtons => item => ; RenderFragment RenderSearch => -@ +@ @if (ShowSearchText) { From 2edc6f86a0d4e321a7ba77510ad7820dc2edbc03 Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Sat, 21 Jan 2023 01:09:02 +0800 Subject: [PATCH 4/5] test: add unit test for CollapsedTopSearch --- test/UnitTest/Components/TableTest.cs | 40 +++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/test/UnitTest/Components/TableTest.cs b/test/UnitTest/Components/TableTest.cs index eb525415de0..31720091328 100644 --- a/test/UnitTest/Components/TableTest.cs +++ b/test/UnitTest/Components/TableTest.cs @@ -443,6 +443,46 @@ public async Task ShowTopSearch_Ok() await cut.InvokeAsync(() => searchButton.Click()); } + [Fact] + public void CollapsedTopSearch_Ok() + { + var localizer = Context.Services.GetRequiredService>(); + var cut = Context.RenderComponent(pb => + { + pb.AddChildContent>(pb => + { + pb.Add(a => a.ShowSearch, true); + pb.Add(a => a.CollapsedTopSearch, true); + pb.Add(a => a.SearchMode, SearchMode.Top); + pb.Add(a => a.OnQueryAsync, OnQueryAsync(localizer)); + pb.Add(a => a.TableColumns, foo => builder => + { + builder.OpenComponent>(0); + builder.AddAttribute(1, "Field", "Name"); + builder.AddAttribute(2, "FieldExpression", Utility.GenerateValueExpression(foo, "Name", typeof(string))); + builder.AddAttribute(3, "Searchable", true); + builder.CloseComponent(); + }); + pb.Add(a => a.TableColumns, foo => builder => + { + builder.OpenComponent>(0); + builder.AddAttribute(1, "Field", foo.Count); + builder.AddAttribute(2, "FieldExpression", Utility.GenerateValueExpression(foo, "Count", typeof(int))); + builder.AddAttribute(3, "Searchable", true); + builder.CloseComponent(); + }); + }); + }); + cut.DoesNotContain("card-body collapse show"); + + var table = cut.FindComponent>(); + table.SetParametersAndRender(pb => + { + pb.Add(a => a.CollapsedTopSearch, false); + }); + cut.Contains("card-body collapse show"); + } + [Fact] public void ShowToolbar_Ok() { From 18d9e35b242d13cc194859c568bfe99b94b7c65a Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Sat, 21 Jan 2023 01:17:26 +0800 Subject: [PATCH 5/5] test: add EditFooterTemplate unit test --- test/UnitTest/Components/TableDialogTest.cs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/test/UnitTest/Components/TableDialogTest.cs b/test/UnitTest/Components/TableDialogTest.cs index ffbd5a53f59..034db681a3d 100644 --- a/test/UnitTest/Components/TableDialogTest.cs +++ b/test/UnitTest/Components/TableDialogTest.cs @@ -127,10 +127,12 @@ public async Task EditAsync_Ok() { itemsChanged = true; }); + pb.Add(a => a.EditFooterTemplate, foo => builder => builder.AddContent(0, "test_edit_footer")); }); // Add 弹窗 await cut.InvokeAsync(() => table.Instance.AddAsync()); + cut.Contains("test_edit_footer"); // 编辑弹窗逻辑 input = cut.Find(".modal-body form input.form-control");