I’m working on server-side Blazor Project using RadzenPickList component to display a list of data from my People table. I want to filter the data based on CompanyId and TypeId before displaying it in the PickList. This is my code below
<code><RadzenCard>
<RadzenPickList @bind-Source="@Source" @bind-Target="@Target" Style="height:300px; width:100%;" Orientation="Orientation.Horizontal"
TextProperty="@nameof(ClassMembers.Name)" AllowFiltering="true" Multiple="true" ShowHeader="true" Disabled="false"
ButtonGap="12px" ButtonJustifyContent="JustifyContent.Center" ButtonStyle="ButtonStyle.Secondary" ButtonSize="ButtonSize.Medium"
ButtonShade="Shade.Default" ButtonVariant="Variant.Flat">
<SourceHeader>
Member:
</SourceHeader>
<TargetHeader>
Selected Member:
</TargetHeader>
<Template>
@context.Name
</Template>
</RadzenPickList>
</RadzenCard>
@code
{
private IEnumerable<People> Peoples;
private IEnumerable<People> _source;
private IEnumerable<People> Source
{
get
{
return _source;
}
set
{
if (_source != value)
{
_source = value;
// Console.WriteLine("Source updated);
}
}
}
private IEnumerable<People> _target;
private IEnumerable<People> Target
{
get
{
return _target;
}
set
{
if (_target != value)
{
_target = value;
}
}
}
protected override async Task OnInitializedAsync()
{
Peoples = await DbContext.People
.Select(pl => new People
{
Id = pl.Id,
Name = pl.Name,
CompanyId = pl.CompanyId,
TypeId = pl.TypeId
}).ToListAsync() ?? new List<People>();
Source = Peoples.Where(pl => pl.CompanyId == selectedCompany && pl.TypeId == selectedPeopleType).ToList();
await base.OnInitializedAsync();
}
}
</code>
<code><RadzenCard>
<RadzenPickList @bind-Source="@Source" @bind-Target="@Target" Style="height:300px; width:100%;" Orientation="Orientation.Horizontal"
TextProperty="@nameof(ClassMembers.Name)" AllowFiltering="true" Multiple="true" ShowHeader="true" Disabled="false"
ButtonGap="12px" ButtonJustifyContent="JustifyContent.Center" ButtonStyle="ButtonStyle.Secondary" ButtonSize="ButtonSize.Medium"
ButtonShade="Shade.Default" ButtonVariant="Variant.Flat">
<SourceHeader>
Member:
</SourceHeader>
<TargetHeader>
Selected Member:
</TargetHeader>
<Template>
@context.Name
</Template>
</RadzenPickList>
</RadzenCard>
@code
{
private IEnumerable<People> Peoples;
private IEnumerable<People> _source;
private IEnumerable<People> Source
{
get
{
return _source;
}
set
{
if (_source != value)
{
_source = value;
// Console.WriteLine("Source updated);
}
}
}
private IEnumerable<People> _target;
private IEnumerable<People> Target
{
get
{
return _target;
}
set
{
if (_target != value)
{
_target = value;
}
}
}
protected override async Task OnInitializedAsync()
{
Peoples = await DbContext.People
.Select(pl => new People
{
Id = pl.Id,
Name = pl.Name,
CompanyId = pl.CompanyId,
TypeId = pl.TypeId
}).ToListAsync() ?? new List<People>();
Source = Peoples.Where(pl => pl.CompanyId == selectedCompany && pl.TypeId == selectedPeopleType).ToList();
await base.OnInitializedAsync();
}
}
</code>
<RadzenCard>
<RadzenPickList @bind-Source="@Source" @bind-Target="@Target" Style="height:300px; width:100%;" Orientation="Orientation.Horizontal"
TextProperty="@nameof(ClassMembers.Name)" AllowFiltering="true" Multiple="true" ShowHeader="true" Disabled="false"
ButtonGap="12px" ButtonJustifyContent="JustifyContent.Center" ButtonStyle="ButtonStyle.Secondary" ButtonSize="ButtonSize.Medium"
ButtonShade="Shade.Default" ButtonVariant="Variant.Flat">
<SourceHeader>
Member:
</SourceHeader>
<TargetHeader>
Selected Member:
</TargetHeader>
<Template>
@context.Name
</Template>
</RadzenPickList>
</RadzenCard>
@code
{
private IEnumerable<People> Peoples;
private IEnumerable<People> _source;
private IEnumerable<People> Source
{
get
{
return _source;
}
set
{
if (_source != value)
{
_source = value;
// Console.WriteLine("Source updated);
}
}
}
private IEnumerable<People> _target;
private IEnumerable<People> Target
{
get
{
return _target;
}
set
{
if (_target != value)
{
_target = value;
}
}
}
protected override async Task OnInitializedAsync()
{
Peoples = await DbContext.People
.Select(pl => new People
{
Id = pl.Id,
Name = pl.Name,
CompanyId = pl.CompanyId,
TypeId = pl.TypeId
}).ToListAsync() ?? new List<People>();
Source = Peoples.Where(pl => pl.CompanyId == selectedCompany && pl.TypeId == selectedPeopleType).ToList();
await base.OnInitializedAsync();
}
}
I want to filter the Peoples collection based on CompanyId and TypeId. However, the filtered data is not showing up. I’ve tried to fetch the data without filter and it showed up just fine. But when I add the filtering, no data is fetched. Does anyone know what might be wrong here?
1