From 65feedd7be7c72c863de29304dc7be161ec0ac04 Mon Sep 17 00:00:00 2001 From: Argo-Lenovo Date: Sat, 3 Sep 2022 20:00:17 +0800 Subject: [PATCH 1/4] =?UTF-8?q?feat:=20radio=20=E6=94=AF=E6=8C=81=20ChildC?= =?UTF-8?q?ontent?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/BootstrapBlazor/Components/Radio/Radio.razor | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/BootstrapBlazor/Components/Radio/Radio.razor b/src/BootstrapBlazor/Components/Radio/Radio.razor index f0c326670..dc06b479d 100644 --- a/src/BootstrapBlazor/Components/Radio/Radio.razor +++ b/src/BootstrapBlazor/Components/Radio/Radio.razor @@ -8,7 +8,16 @@ @if (ShowAfterLabel && !string.IsNullOrEmpty(DisplayText)) { - + } } else -- Gitee From 13846ada6f893b40e42eb7cbfa2d1bd902133cf6 Mon Sep 17 00:00:00 2001 From: Argo-Lenovo Date: Sat, 3 Sep 2022 20:14:45 +0800 Subject: [PATCH 2/4] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0=E6=A8=A1?= =?UTF-8?q?=E6=9D=BF=E8=81=94=E5=8A=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Components/Radio/RadioList.razor | 3 ++- .../Components/Radio/RadioList.razor.cs | 17 +++++++++++++++-- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/src/BootstrapBlazor/Components/Radio/RadioList.razor b/src/BootstrapBlazor/Components/Radio/RadioList.razor index e134ed1e5..cb9013959 100644 --- a/src/BootstrapBlazor/Components/Radio/RadioList.razor +++ b/src/BootstrapBlazor/Components/Radio/RadioList.razor @@ -9,7 +9,8 @@
@foreach (var item in Items) { - + var content = GetChildContent(item); + }
@ChildContent diff --git a/src/BootstrapBlazor/Components/Radio/RadioList.razor.cs b/src/BootstrapBlazor/Components/Radio/RadioList.razor.cs index 0d87067e5..0db1a26ad 100644 --- a/src/BootstrapBlazor/Components/Radio/RadioList.razor.cs +++ b/src/BootstrapBlazor/Components/Radio/RadioList.razor.cs @@ -33,7 +33,14 @@ public partial class RadioList /// 获得/设置 空值项显示文字 默认为 "" 是否自动添加空值请参考 /// [Parameter] - public string NullItemText { get; set; } = ""; + [NotNull] + public string? NullItemText { get; set; } + + /// + /// 获得/设置 项模板 + /// + [Parameter] + public RenderFragment? ItemTemplate { get; set; } private string? GroupName => Id; @@ -55,6 +62,8 @@ public partial class RadioList base.OnParametersSet(); + NullItemText ??= ""; + if (!Items.Any(i => i.Value == CurrentValueAsString)) { CurrentValueAsString = Items.FirstOrDefault()?.Value ?? ""; @@ -76,7 +85,7 @@ public partial class RadioList protected override void ProcessGenericItems(Type typeValue, IEnumerable? list) { } /// - /// + /// /// protected override void EnsureParameterValid() { } @@ -105,4 +114,8 @@ public partial class RadioList } private CheckboxState CheckState(SelectedItem item) => item.Value == CurrentValueAsString ? CheckboxState.Checked : CheckboxState.UnChecked; + + private RenderFragment? GetChildContent(SelectedItem item) => ItemTemplate == null + ? null + : ItemTemplate(item); } -- Gitee From cc32f47a9a90d6b20a95c822204c98d2df8600d3 Mon Sep 17 00:00:00 2001 From: Argo-Lenovo Date: Sat, 3 Sep 2022 20:15:00 +0800 Subject: [PATCH 3/4] =?UTF-8?q?doc:=20=E6=9B=B4=E6=96=B0=E7=A4=BA=E4=BE=8B?= =?UTF-8?q?=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/BootstrapBlazor.Shared/Samples/Radios.razor | 14 ++++++++++++++ src/BootstrapBlazor.Shared/Samples/Radios.razor.cs | 14 ++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/src/BootstrapBlazor.Shared/Samples/Radios.razor b/src/BootstrapBlazor.Shared/Samples/Radios.razor index 4720606bf..c61eff12e 100644 --- a/src/BootstrapBlazor.Shared/Samples/Radios.razor +++ b/src/BootstrapBlazor.Shared/Samples/Radios.razor @@ -41,6 +41,20 @@ + + + + @if (context is IconSelectedItem item) + { +
+ + @item.Text +
+ } +
+
+
+
diff --git a/src/BootstrapBlazor.Shared/Samples/Radios.razor.cs b/src/BootstrapBlazor.Shared/Samples/Radios.razor.cs index ced447116..d59e39392 100644 --- a/src/BootstrapBlazor.Shared/Samples/Radios.razor.cs +++ b/src/BootstrapBlazor.Shared/Samples/Radios.razor.cs @@ -24,6 +24,9 @@ public sealed partial class Radios [NotNull] private IEnumerable? DemoValues { get; set; } + [NotNull] + private IEnumerable? IconDemoValues { get; set; } + private Task OnSelectedChanged(IEnumerable values, string val) { var value = values.FirstOrDefault(); @@ -78,6 +81,12 @@ public sealed partial class Radios }; Model = Foo.Generate(LocalizerFoo); FooItems = Foo.GetCompleteItems(LocalizerFoo); + + IconDemoValues = new List() + { + new IconSelectedItem() { Text = "Item1", Value = "1", Icon = "fa-solid fa-users" }, + new IconSelectedItem() { Text = "Item2", Value = "2", Icon = "fa-solid fa-users-gear" } + }; } private IEnumerable GetAttributes() => new[] @@ -153,4 +162,9 @@ public sealed partial class Radios Type ="Func, TValue, Task>" } }; + + class IconSelectedItem : SelectedItem + { + public string? Icon { get; set; } + } } -- Gitee From 24378f9362a80273110ec4b07b95c9ea3ba54636 Mon Sep 17 00:00:00 2001 From: Argo-Lenovo Date: Sat, 3 Sep 2022 20:17:12 +0800 Subject: [PATCH 4/4] =?UTF-8?q?chore:=20=E5=A2=9E=E5=8A=A0=E6=9C=AC?= =?UTF-8?q?=E5=9C=B0=E5=8C=96=E8=B5=84=E6=BA=90=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/BootstrapBlazor.Shared/Locales/en.json | 2 ++ src/BootstrapBlazor.Shared/Locales/zh.json | 2 ++ 2 files changed, 4 insertions(+) diff --git a/src/BootstrapBlazor.Shared/Locales/en.json b/src/BootstrapBlazor.Shared/Locales/en.json index 17a059126..f7d0902ce 100644 --- a/src/BootstrapBlazor.Shared/Locales/en.json +++ b/src/BootstrapBlazor.Shared/Locales/en.json @@ -1503,6 +1503,8 @@ "Block7Intro": "Change the component background color by setting the Color property", "BlockIsButtonTitle": "Button Radio", "BlockIsButtonIntro": "Set IsButton to True make the radio item display as Button", + "ItemTemplateTitle": "ItemTemplate", + "ItemTemplateIntro": "Set ItemTemplate for customer the item UI", "Att1": "Displays text", "Att2": "The empty value displays the text", "Att3": "Whether to disable it", diff --git a/src/BootstrapBlazor.Shared/Locales/zh.json b/src/BootstrapBlazor.Shared/Locales/zh.json index cf192d771..24e489212 100644 --- a/src/BootstrapBlazor.Shared/Locales/zh.json +++ b/src/BootstrapBlazor.Shared/Locales/zh.json @@ -1501,6 +1501,8 @@ "Block6Intro": "通过双向绑定 Value 无需设置 Items", "BlockIsButtonTitle": "按钮样式", "BlockIsButtonIntro": "通过设定 IsButton 值为 True 将候选项更改为按钮样式", + "ItemTemplateTitle": "项目模板", + "ItemTemplateIntro": "通过设置 ItemTemplate 自定义显示 UI", "P1": "通过设置 IsAutoAddNullItem 自动添加 空值 选项,通过设置 NullItemText 自定义 空值 选项", "RadioText2": "空值", "Block7Title": "颜色", -- Gitee