!1334 fix(#I3LVBZ): MultiSelect OnParameterSet should check CurrentValueAsString

* docs: 更改级联参数示例
* fix: 修复级联更改数据源不正确问题
This commit is contained in:
Argo
2021-04-19 00:30:21 +08:00
parent 866824d7ea
commit c6a51e3e29
2 changed files with 9 additions and 6 deletions

View File

@@ -30,11 +30,11 @@ namespace BootstrapBlazor.Shared.Pages
/// <param name="item"></param>
private async Task OnCascadeBindSelectClick(SelectedItem item)
{
// 模拟异步获取数据源
await Task.Delay(100);
Items2.Clear();
if (item.Value == "Beijing")
{
Items2.AddRange(new SelectedItem[]
Items2 = new List<SelectedItem>(new[]
{
new SelectedItem("1","朝阳区") { Active = true },
new SelectedItem("2","海淀区")
@@ -42,12 +42,16 @@ namespace BootstrapBlazor.Shared.Pages
}
else if (item.Value == "Shanghai")
{
Items2.AddRange(new SelectedItem[]
Items2 = new List<SelectedItem>(new[]
{
new SelectedItem("1","静安区"),
new SelectedItem("2","黄浦区") {Active = true },
});
}
else
{
Items2 = new List<SelectedItem>();
}
StateHasChanged();
}

View File

@@ -105,7 +105,6 @@ namespace BootstrapBlazor.Components
/// 获得/设置 绑定数据集回调方法
/// </summary>
[Parameter]
[NotNull]
public EventCallback<IEnumerable<SelectedItem>> ItemsChanged { get; set; }
/// <summary>
@@ -211,7 +210,7 @@ namespace BootstrapBlazor.Components
await base.OnParametersSetAsync();
// 通过 Value 对集合进行赋值
if (Value != null)
if (!string.IsNullOrEmpty(CurrentValueAsString))
{
var list = CurrentValueAsString.Split(',', StringSplitOptions.RemoveEmptyEntries);
foreach (var item in Items)
@@ -480,7 +479,7 @@ namespace BootstrapBlazor.Components
/// 更改组件数据源方法
/// </summary>
/// <param name="items"></param>
[Obsolete("请使用双向绑定 @bind-Items 来获取 Items 集合变化,更改数据源只需更改 Items 参数即可")]
[Obsolete("更改数据源 Items 参数即可")]
public void SetItems(List<SelectedItem>? items)
{
Items = items;