Preview
Name Surname Marital status Employed
Joe Crosswave Married False
Merry Lisel Widowed
Henry Crux Single True
Cody Jurut False
Simon Scranton Single
Leena Laurent Divorced False
Ode Cosmides Married True
Diandra Mizner Single False
Pete Cassel Married False
Nicky Tremblay Married True
Mary Cassel Married True
Startup

public void ConfigureServices(IServiceCollection services)
{
    services.AddMvcGrid(filters =>
    {
        filters.Unregister(typeof(String), "starts-with");
        filters.Unregister(typeof(String), "ends-with");
    });
}

View

@model IQueryable<Person>

@(Html
    .Grid(Model)
    .Build(columns =>
    {
        columns.Add(model => model.Name).Titled("Name");
        columns.Add(model => model.Surname).Titled("Surname");
        columns.Add(model => model.MaritalStatus).Titled("Marital status");

        columns.Add(model => model.IsWorking).Titled("Employed");
    })
    .Empty("No data found")
    .Filterable()
)

Javascript

class MvcGridGuidFilter extends MvcGridFilter {
    constructor(column) {
        super(column);

        this.methods = ["contains", "equals", "not-equals"];
    }
}

new MvcGrid(document.querySelector(".mvc-grid"), {
    filters: {
        "text": CustomTextFilter
    }
});