Welcome to the Blazor feedback portal. We’re happy you’re here! If you have feedback on how to improve the Blazor, we’d love to hear it!>
Thanks for joining our community and helping improve Syncfusion products!
So I have a SfMultiSelect and a SfDropDownList where the SfMultiSelect is populated based on ValueChange event of SfDropDownList.
<div class="form-group">
<div>
<SfDropDownList Enabled="true" @bind-Value="@agent" TItem="Agent" TValue="string" Placeholder="Agent" FloatLabelType="@FloatLabelType.Auto" PopupHeight="auto" DataSource="@agents">
<DropDownListFieldSettings Text="AgentName" Value="AgentCode"></DropDownListFieldSettings>
<DropDownListEvents TItem="Agent" TValue="string" ValueChange="OnChange"></DropDownListEvents>
<DropDownListTemplates TItem="Agent">
<ItemTemplate>
@((context as Agent).AgentCode): @((context as Agent).AgentName)
</ItemTemplate>
</DropDownListTemplates>
</SfDropDownList>
</div>
</div>
<div class="form-group">
<SfMultiSelect ShowSelectAll="true" Mode="@VisualMode.CheckBox" ShowDropDownIcon="true" ModelType="typeof(Outlet)" TValue="string[]" CssClass="template" @bind-Value="@SelectedOutlet" FloatLabelType="@FloatLabelType.Auto" Placeholder="Outlet" DataSource="@outlets">
<MultiSelectTemplates>
<ItemTemplate Context="OutletContext">
@((OutletContext as Outlet).OutletCode): @((OutletContext as Outlet).OutletName)
</ItemTemplate>
</MultiSelectTemplates>
<MultiSelectFieldSettings Text="@nameof(Outlet.OutletName)" Value="@nameof(Outlet.OutletCode)"></MultiSelectFieldSettings>
</SfMultiSelect>
@code {
private string[] SelectedOutlet = new string[] { };
private string agent { get; set; }
private IEnumerable<Agent> agents;
protected IEnumerable<Outlet> outlets;
protected override async Task OnInitializedAsync()
{
agents = await AgentService.GetAll Agents();
}
public async Task OnChange(Syncfusion.Blazor.DropDowns.ChangeEventArgs<string, Agent> args)
{
outlets = await OutletService.GetOutlet( agent );
}
}
<style>
.template.e-popup .e-list-item * {
display: inline-block !important;
text-indent: 0px;
}
</style>