Blazor输入+数据列表如何将所选项目绑定到对象

时间:2020-02-29 08:06:24

标签: c# bind blazor datalist

第一次接触Blazor,我具有以下组件内容:

<div class="form-group row">

<label class="col-2 col-form-label" for="PartnerInput">Partner:</label>
<input id="PartnerInput" list="Partners" />
<datalist class="col-4" id="Partners" >
    @foreach (var partner in partners)
    {
        <option value="@partner.Name"></option>
    }
</datalist>

<label class="col-auto col-form-label">@($"Partner ID: {SelectedPartner.Id}")</label>

和代码块:

@code {

[Parameter]
public string companyName { get; set; }

private List<Partner> partners;

private Partner _selectedPartner;
public Partner SelectedPartner
{
    get { return _selectedPartner; }
    set { _selectedPartner = value; }
}


protected override async Task OnInitializedAsync()
{
    var company = await CompanyService.GetCompanyByNameAsync(companyName);
    partners = await DataService.GetPartnersAsync();
}

如何将选定的伙伴从数据列表中移到我的SelectedPartner属性中?我可以通过绑定简单地实现它,还是需要一个字符串属性,可以在输入标记中绑定=“ @ ...”,然后在代码中按名称查找所选的伙伴并保存到我的SelectedPartner对象中-听起来像一个错误的解决方法

1 个答案:

答案 0 :(得分:0)

这是我能想到的最好的解决方案...由于输入元素已绑定到数据列表对象,因此没有任何魔术方法可以实现数据绑定。我的解决方案或多或少像您建议的那样。这是代码:

with()