From d65828db371564f970c27a97b5399cf1543e87b2 Mon Sep 17 00:00:00 2001
From: Argo-Cloud
Date: Tue, 6 Apr 2021 00:48:04 +0800
Subject: [PATCH 1/4] release: publish 5.0.24-beta05
---
src/BootstrapBlazor/BootstrapBlazor.csproj | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/BootstrapBlazor/BootstrapBlazor.csproj b/src/BootstrapBlazor/BootstrapBlazor.csproj
index 9d0139844..94010ce77 100644
--- a/src/BootstrapBlazor/BootstrapBlazor.csproj
+++ b/src/BootstrapBlazor/BootstrapBlazor.csproj
@@ -3,7 +3,7 @@
true
logo.png
- 5.0.24-beta04
+ 5.0.24-beta05
https://gitee.com/LongbowEnterprise/BootstrapBlazor/wikis
--
Gitee
From 698426fdb9b3b2c99fc6e859f43e984d3581e957 Mon Sep 17 00:00:00 2001
From: Argo-Cloud
Date: Tue, 6 Apr 2021 01:42:51 +0800
Subject: [PATCH 2/4] =?UTF-8?q?feat:=20Display=20=E7=BB=84=E4=BB=B6?=
=?UTF-8?q?=E5=A2=9E=E5=8A=A0=20Data=20=E5=8F=82=E6=95=B0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Components/Display/Display.razor.cs | 49 +++++++++++++++++--
1 file changed, 45 insertions(+), 4 deletions(-)
diff --git a/src/BootstrapBlazor/Components/Display/Display.razor.cs b/src/BootstrapBlazor/Components/Display/Display.razor.cs
index bf84a10c6..12c10bed0 100644
--- a/src/BootstrapBlazor/Components/Display/Display.razor.cs
+++ b/src/BootstrapBlazor/Components/Display/Display.razor.cs
@@ -8,6 +8,7 @@ using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
+using System.Reflection;
using System.Threading.Tasks;
namespace BootstrapBlazor.Components
@@ -34,6 +35,12 @@ namespace BootstrapBlazor.Components
[Parameter]
public string? FormatString { get; set; }
+ ///
+ /// 获得/设置 数据集用于 CheckboxList Select 组件 通过 Value 显示 Text 使用 默认 null
+ ///
+ [Parameter]
+ public IEnumerable? Data { get; set; }
+
///
/// OnParametersSetAsync 方法
///
@@ -111,16 +118,19 @@ namespace BootstrapBlazor.Components
}
}
- private static Func? _converterEnumerable;
+ private static Func? _convertEnumerableToString;
+ private static Func>? _convertToEnumerableString;
///
/// 获取属性方法 Lambda 表达式
///
///
- private static string ConvertEnumerableToString(TValue value)
+ private string ConvertEnumerableToString(TValue value)
{
- return (_converterEnumerable ??= ConvertArrayToStringLambda())(value);
+ return Data == null
+ ? (_convertEnumerableToString ??= ConvertEnumerableToStringLambda())(value)
+ : GetTextByValue((_convertToEnumerableString ??= ConvertToEnumerableStringLambda())(value));
- static Func ConvertArrayToStringLambda()
+ static Func ConvertEnumerableToStringLambda()
{
Func ret = _ => "";
var typeArguments = typeof(TValue).GenericTypeArguments;
@@ -133,6 +143,37 @@ namespace BootstrapBlazor.Components
}
return ret;
}
+
+ static Func> ConvertToEnumerableStringLambda()
+ {
+ Func> ret = _ => Enumerable.Empty();
+ var typeArguments = typeof(TValue).GenericTypeArguments;
+ var param_p1 = Expression.Parameter(typeof(IEnumerable<>).MakeGenericType(typeArguments));
+
+ var method = typeof(Display<>).MakeGenericType(typeof(TValue))
+ .GetMethod("Cast", BindingFlags.NonPublic | BindingFlags.Static)?
+ .MakeGenericMethod(typeArguments);
+ if (method != null)
+ {
+ var body = Expression.Call(method, param_p1);
+ ret = Expression.Lambda>>(body, param_p1).Compile();
+ }
+ return ret;
+ }
}
+
+ private static IEnumerable Cast(IEnumerable source) => source.Select(i => i?.ToString());
+
+ private string GetTextByValue(IEnumerable source) => Data == null
+ ? ""
+ : string.Join(",", source.Aggregate(new List(), (s, i) =>
+ {
+ var text = Data.FirstOrDefault(d => d.Value.Equals(i, StringComparison.OrdinalIgnoreCase))?.Text;
+ if (text != null)
+ {
+ s.Add(text);
+ }
+ return s;
+ }));
}
}
--
Gitee
From 0e9a13eb9f586f10ebe2c09e31d17fddb776ed58 Mon Sep 17 00:00:00 2001
From: Argo-Cloud
Date: Tue, 6 Apr 2021 01:43:12 +0800
Subject: [PATCH 3/4] =?UTF-8?q?docs:=20=E6=9B=B4=E6=96=B0=20Display=20?=
=?UTF-8?q?=E7=BB=84=E4=BB=B6=E7=A4=BA=E4=BE=8B?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Pages/Samples/Displays.razor | 15 +++++++++++++++
.../Pages/Samples/Displays.razor.cs | 9 +++++++++
2 files changed, 24 insertions(+)
diff --git a/src/BootstrapBlazor.Shared/Pages/Samples/Displays.razor b/src/BootstrapBlazor.Shared/Pages/Samples/Displays.razor
index 2b4a6aea0..c09f9100e 100644
--- a/src/BootstrapBlazor.Shared/Pages/Samples/Displays.razor
+++ b/src/BootstrapBlazor.Shared/Pages/Samples/Displays.razor
@@ -110,4 +110,19 @@
+
+
+
本例中组件 Value="@@IntValue" 设置 Data="@@IntValueSource" 组件将 Value 值对应的 Text 显示出来
+ InitValue: 1,2,3
+ IntValueSource: Text1,Text2,Text3
+
+
+
+
diff --git a/src/BootstrapBlazor.Shared/Pages/Samples/Displays.razor.cs b/src/BootstrapBlazor.Shared/Pages/Samples/Displays.razor.cs
index 5a3f18a8d..3f492a371 100644
--- a/src/BootstrapBlazor.Shared/Pages/Samples/Displays.razor.cs
+++ b/src/BootstrapBlazor.Shared/Pages/Samples/Displays.razor.cs
@@ -32,6 +32,15 @@ namespace BootstrapBlazor.Shared.Pages
private byte[] ByteArray { get; set; } = new byte[] { 0x01, 0x12, 0x34, 0x56 };
+ private IEnumerable IntValue { get; set; } = new[] { 1, 2, 3 };
+
+ private IEnumerable IntValueSource { get; set; } = new[]
+ {
+ new SelectedItem("1", "Text1"),
+ new SelectedItem("2", "Text2"),
+ new SelectedItem("3", "Text3")
+ };
+
private static async Task ByteArrayFormatter(byte[] source)
{
await Task.Delay(10);
--
Gitee
From ede20b866cdaeaf184fab2866187dc5192cacd9d Mon Sep 17 00:00:00 2001
From: Argo-Cloud
Date: Tue, 6 Apr 2021 01:47:20 +0800
Subject: [PATCH 4/4] release: publish 5.0.24-beta06
---
src/BootstrapBlazor/BootstrapBlazor.csproj | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/BootstrapBlazor/BootstrapBlazor.csproj b/src/BootstrapBlazor/BootstrapBlazor.csproj
index 94010ce77..14944fb2b 100644
--- a/src/BootstrapBlazor/BootstrapBlazor.csproj
+++ b/src/BootstrapBlazor/BootstrapBlazor.csproj
@@ -1,9 +1,9 @@
-
+
true
logo.png
- 5.0.24-beta05
+ 5.0.24-beta06
https://gitee.com/LongbowEnterprise/BootstrapBlazor/wikis
--
Gitee