# grid-default-filtering

> Data grid filters records with a category dropdown and a filterbar-operator toggle.

**Framework:** aspnet-core  **Component:** Grid  **Variant:** default-filtering

## Get this item

**If you are an agent, fetch the JSON.** Source is inlined, so one request is enough and no tooling is required:

```
GET https://ai.syncfusion.com/r/aspnet-core/grid-default-filtering.json
```

**Install Package(s)**

```bash
dotnet add package Syncfusion.AspNetCore.Grid
```

**Notes**

- Syncfusion release: 2026 Volume 2 (v34.1.29)
- The Syncfusion package is licensed. The composition in this file is source you own and edit. See https://ai.syncfusion.com/licensing.md

## Source files

### src/components/grid-default-filtering/grid.cshtml

```cshtml
@page
@model EJ2CoreSampleBrowser.Pages.Grid.DefaultFilteringModel
@{
    ViewData["Title"] = "Filtering";
}

    <div class="col-lg-9 control-section">
        <div class="control-wrapper">
            <ejs-grid id="Grid" dataSource="@Model.DataSource" allowFiltering="true" allowSorting="true" allowPaging="true">
                <e-grid-pagesettings pageCount="5"></e-grid-pagesettings>
                <e-grid-columns>
                    <e-grid-column field="CategoryName" headerText="Category Name" textAlign="Right" width="150"></e-grid-column>
                    <e-grid-column field="ProductName" headerText="Product Name" width="150"></e-grid-column>
                    <e-grid-column field="UnitsInStock" headerText="Units in Stock" textAlign="Right" width="150"></e-grid-column>
                    <e-grid-column field="Discontinued" headerText="Discontinued" width="150" displayAsCheckBox="true" textAlign="Center" type="boolean"></e-grid-column>
                </e-grid-columns>

            </ejs-grid>
        </div>
    </div>
```

### src/components/grid-default-filtering/grid.cshtml.cs

```cs
using Microsoft.AspNetCore.Mvc.RazorPages;
namespace EJ2CoreSampleBrowser.Pages.Grid;

public class DefaultFilteringModel : PageModel
{
    public List<Category> DataSource { get; set; }

    public void OnGet()
    {
        DataSource = Category.GetAllRecords();

    }
}

public class Category
    {
        
        private bool? _discont = false;
        public Category()
        {

        }
        public Category(string CategoryName, string ProductName, string QuantityPerUnit, bool Discontinued, short UnitsInStock)
        {

            this.CategoryName = CategoryName;
            this.ProductName = ProductName;
            this.QuantityPerUnit = QuantityPerUnit;
            this.UnitsInStock = UnitsInStock;
            this.Discontinued = Discontinued;
        }

        public static List<Category> GetAllRecords()
        {
            List<Category> category = new List<Category>();
            category.Add(new Category("Beverages", "Chai", "10 boxes x 20 bags", true, 39));
            category.Add(new Category("Condiments", "Aniseed Syrup", "12 - 550 ml bottles", true, 13));
            category.Add(new Category("Confections", "Chocolade", "10 pkgs.", true, 15));
            category.Add(new Category("Dairy Categorys", "Camembert Pierrot", "15 - 300 g rounds", false, 19));
            category.Add(new Category("Grains/Cereals", "Filo Mix", "16 - 2 kg boxes", false, 38));
            category.Add(new Category("Meat/Poultry", "Tourtire", "16 pies", false, 21));
            return category;
        }

        public string CategoryName { get; set; }
        public string ProductName { get; set; }
        public string QuantityPerUnit { get; set; }
        public short UnitsInStock { get; set; }
        public bool? Discontinued
        {
            get
            {
                return this._discont;
            }
            set
            {
                this._discont = value;
            }
        }
    }
```
