|
<div class="page-inner" id="pageinner">
<p>Datasource Values</p>
<div class="row">
<div class="col-12 mt-3 pt-3">
<div class="inner-body mg-main">
<SfAutoComplete @ref="TestAutoCompleteObj" TValue="string" TItem="GroupedDiseaseViewModel" Placeholder="Type the disease" Value="@SelectedDisease?.SubDisease" DataSource="FilteredDiseaseList">
<AutoCompleteFieldSettings GroupBy="Disease" Text="SubDisease" Value="SubDisease"></AutoCompleteFieldSettings>
<AutoCompleteEvents TItem="GroupedDiseaseViewModel" TValue="String" Filtering="@OnTestFiltering" ></AutoCompleteEvents>
</SfAutoComplete>
</div>
</div>
</div>
</div>
@code {
public GroupedDiseaseViewModel SelectedDisease { get; set; }
SfAutoComplete<string, GroupedDiseaseViewModel> TestAutoCompleteObj;
public List<GroupedDiseaseViewModel> FilteredDiseaseList { get; set; }
protected async Task OnTestFiltering(FilteringEventArgs args)
{
if (args.Text.Length > 2)
{
List<GroupedDiseaseViewModel> result = await disservice.GetDiseaseDataAsync();
FilteredDiseaseList = result?.Where(dis => dis.SubDisease.ToLowerInvariant().Contains(args.Text.ToLowerInvariant())).ToList();
}
}
protected void OnTestChange(Syncfusion.Blazor.DropDowns.SelectEventArgs<GroupedDiseaseViewModel> args)
{
if (args != null && args.ItemData != null)
{
//var jsonInput = args.ItemData.ToString();
//SelectedDisease = args.ItemData as GroupedDiseaseViewModel;
//StateHasChanged();
}
}
}
|
Following is the code
|
<div class="page-inner" id="pageinner">
<p>Selected Value:</p><strong>@Value</strong>
<div class="row">
<div class="col-12 mt-3 pt-3">
<div class="inner-body mg-main">
<SfAutoComplete @ref="TestAutoCompleteObj" TValue="string" TItem="GroupedDiseaseViewModel" Placeholder="Type the disease" DataSource="FilteredDiseaseList">
<AutoCompleteFieldSettings GroupBy="Disease" Text="SubDisease" Value="SubDisease"></AutoCompleteFieldSettings>
<AutoCompleteEvents TItem="GroupedDiseaseViewModel" TValue="String" Filtering="@OnTestFiltering" ValueChange="@OnTestChange"></AutoCompleteEvents>
</SfAutoComplete>
</div>
</div>
</div>
</div>
@code {
public string Value { get; set; }
public GroupedDiseaseViewModel SelectedDisease { get; set; }
SfAutoComplete<string, GroupedDiseaseViewModel> TestAutoCompleteObj;
public List<GroupedDiseaseViewModel> FilteredDiseaseList { get; set; }
protected async Task OnTestFiltering(FilteringEventArgs args)
{
if (args.Text.Length > 2)
{
List<GroupedDiseaseViewModel> result = await disservice.GetDiseaseDataAsync();
FilteredDiseaseList = result?.Where(dis => dis.SubDisease.ToLowerInvariant().Contains(args.Text.ToLowerInvariant())).ToList();
}
}
protected void OnTestChange(Syncfusion.Blazor.DropDowns.ChangeEventArgs<string, GroupedDiseaseViewModel> args)
{
Value = args.Value;
}
}
|
|
|