I am unable to filter on Column category which is present in Equipment -> EquipmentCategory class. I am trying to filter the data on the basis of string CategoryName and when I enter a character in the filter box the request is going to server however Property name is not coming for Category.
Equipments.razor
<Grid @ref="grid" TItem="Equipment" Class="table table-hover table-bordered table-striped" DataProvider="EquipmentsListDataProvider" AllowPaging="true" AllowSorting="true" Responsive="true" PageSize="15" SelectionMode="GridSelectionMode.Multiple" AllowFiltering="true" Style=" z-index: 1;"><GridColumn TItem="Equipment" HeaderText="Equipment Name" PropertyName="EquipmentName" SortString="EquipmentName" SortKeySelector="item => item.EquipmentName" HeaderTextAlignment="Alignment.Center" TextAlignment="Alignment.Center"><ChildContent Context="gridContext"> @gridContext.EquipmentName</ChildContent></GridColumn><GridColumn TItem="Equipment" HeaderText="Category" PropertyName="EquipmentCategory.CategoryName" SortString="EquipmentCategory.CategoryName" SortKeySelector="item => item.EquipmentCategory.CategoryName" HeaderTextAlignment="Alignment.Center" TextAlignment="Alignment.Center"><ChildContent Context="gridContext"> @gridContext.EquipmentCategory.CategoryName</ChildContent></GridColumn><GridColumn TItem="Equipment" HeaderText="Type" PropertyName="EquipmentTypeId" SortString="EquipmentTypeId" SortKeySelector="item => item.EquipmentTypeId" HeaderTextAlignment="Alignment.Center" TextAlignment="Alignment.Center"><ChildContent Context="gridContext"> @gridContext.EquipmentType.TypeName</ChildContent></GridColumn><GridColumn TItem="Equipment" HeaderText="Family Series" PropertyName="FamilySeriesId" SortString="FamilySeriesId" SortKeySelector="item => item.FamilySeriesId" HeaderTextAlignment="Alignment.Center" TextAlignment="Alignment.Center"><ChildContent Context="gridContext"> @gridContext.FamilySeries.FamilySeriesName</ChildContent></GridColumn><GridColumn TItem="Equipment" HeaderText="Created By" PropertyName="CreatedBy" SortString="CreatedBy" SortKeySelector="item => item.CreatedBy" HeaderTextAlignment="Alignment.Center" TextAlignment="Alignment.Center"><ChildContent Context="gridContext"> @gridContext.CreatedByNavigation.FirstName @gridContext.CreatedByNavigation.LastName</ChildContent></GridColumn><GridColumn TItem="Equipment" HeaderText="Has SubEquipment" PropertyName="HasSubEquipment" SortString="HasSubEquipment" SortKeySelector="item => item.HasSubEquipment" HeaderTextAlignment="Alignment.Center" TextAlignment="Alignment.Center"><ChildContent Context="gridContext"> @if (gridContext.HasSubEquipment == true) {<span>Yes</span> } else {<span>No</span> }</ChildContent></GridColumn><GridColumn TItem="Equipment" HeaderText="Created Date" PropertyName="CreatedDate" SortString="CreatedDate" SortKeySelector="item => item.CreatedDate" HeaderTextAlignment="Alignment.Center" TextAlignment="Alignment.Center"><ChildContent Context="gridContext"> @gridContext.CreatedDate</ChildContent></GridColumn><GridColumn TItem="Equipment" HeaderText="Updated By" PropertyName="UpdatedBy" SortString="UpdatedBy" SortKeySelector="item => item.UpdatedBy" HeaderTextAlignment="Alignment.Center" TextAlignment="Alignment.Center"><ChildContent Context="gridContext">@gridContext.UpdatedByNavigation.FirstName @gridContext.UpdatedByNavigation.LastName</ChildContent></GridColumn><GridColumn TItem="Equipment" HeaderText="Updated Date" PropertyName="UpdatedDate" SortString="UpdatedDate" SortKeySelector="item => item.UpdatedDate" HeaderTextAlignment="Alignment.Center" TextAlignment="Alignment.Center"><ChildContent Context="gridContext">@gridContext.UpdatedDate</ChildContent></GridColumn><GridColumn TItem="Equipment" HeaderText="Status" PropertyName="Status" SortString="Status" SortKeySelector="item => item.Status" HeaderTextAlignment="Alignment.Center" TextAlignment="Alignment.Center"><ChildContent Context="gridContext"> @if (gridContext.Status == true) {<span>Active</span> } else {<span>In-active</span> }</ChildContent></GridColumn><GridColumn TItem="Equipment" HeaderText="Actions" HeaderTextAlignment="Alignment.Center" TextAlignment="Alignment.Center"><ChildContent Context="gridContext"><button class="btn success-button-common" @onclick="() => EditEquipment(gridContext.EquipmentId)"><i class="bi bi-pencil-square"></i></button><button class="btn btn-danger" @onclick="() => DeleteEquipment(gridContext.EquipmentId)"><i class="bi bi-trash"></i></button></ChildContent></GridColumn>Equipments.razor.cs
private async Task<GridDataProviderResult<Equipment>> EquipmentsListDataProvider(GridDataProviderRequest<Equipment> request) { try { if (lstEquipment is null) lstEquipment = await GetAllEquipments(); return await Task.FromResult(request.ApplyTo(lstEquipment)); } catch (Exception ex) { return null; } }Equipment Class
public partial class Equipment{ public int EquipmentId { get; set; } public string EquipmentName { get; set; } public int EquipmentCategoryId { get; set; } public bool? HasSubEquipment { get; set; } public int EquipmentTypeId { get; set; } public int FamilySeriesId { get; set; } public bool? Status { get; set; } public int? CreatedBy { get; set; } public int? UpdatedBy { get; set; } public DateTime? CreatedDate { get; set; } public DateTime? UpdatedDate { get; set; } public virtual User CreatedByNavigation { get; set; } public virtual EquipmentCategory EquipmentCategory { get; set; } public virtual EquipmentType EquipmentType { get; set; } public virtual FamilySeries FamilySeries { get; set; } public virtual ICollection<SalesForecast> SalesForecasts { get; set; } = new List<SalesForecast>(); public virtual ICollection<SubEquipment> SubEquipments { get; set; } = new List<SubEquipment>(); public virtual User UpdatedByNavigation { get; set; }EquipmentCategory
public partial class EquipmentCategory {public int EquipmentCategoryId { get; set; }
public string CategoryName { get; set; }public string Description { get; set; }public virtual ICollection<Equipment> Equipment { get; set; } = new List<Equipment>();public virtual ICollection<EquipmentType> EquipmentTypes { get; set; } = new List<EquipmentType>(); }