Filter Row
The Gantt component allows users to filter columns by filter row values. To apply filter criteria, users can enter a value in a column's filter row cell or select the value in this cell's editor.
Set the filterRow.visible property to true to display the filter row. Assign false to the columns.allowFiltering property to disable filtering for a column.
The filter row contains a magnifier icon in its cells. Users can click this icon to select a comparison type from a pop-up list. Set the showOperationChooser property to false for a column to hide the magnifier icon.
The Gantt allows you to define initial filter settings in code. Specify a column's filterValue property to apply filter criteria to the column.
jQuery
$(function() { $("#gantt").dxGantt({ columns: [{ dataField: 'title', caption: 'Subject', filterValue: 'Scope' }, { dataField: 'start', caption: 'Start Date', allowFiltering: false }, { // ... filterRow: { visible: true } }); });
Angular
<dx-gantt ... > <dxo-filter-row [visible]="true"> </dxo-filter-row> <dxi-column dataField="title" caption="Subject" filterValue="Scope"> </dxi-column> <dxi-column dataField="start" caption="Start Date" dataType="date" [allowFiltering]="false"> </dxi-column> <!--...--> </dx-gantt>
import { Component } from '@angular/core'; @Component({ selector: 'app-root', templateUrl: './app.component.html', styleUrls: ['./app.component.css'] }) export class AppComponent { // ... }
import { BrowserModule } from '@angular/platform-browser'; import { NgModule } from '@angular/core'; import { AppComponent } from './app.component'; import { DxGanttModule } from 'devextreme-angular'; @NgModule({ imports: [ BrowserModule, DxGanttModule ], declarations: [AppComponent], bootstrap: [AppComponent] }) export class AppModule { }
Vue
<template> <DxGantt ... > <DxFilterRow :visible="true" /> <DxColumn data-field="title" caption="Subject" filterValue="Scope" /> <DxColumn data-field="start" caption="Start Date" :allowFiltering="false" /> <!--...--> </DxGantt> </template> <script> import 'devextreme/dist/css/dx.light.css'; import 'devexpress-gantt/dist/dx-gantt.css'; import { DxGantt, DxFilterRow, DxColumn, // ... } from 'devextreme-vue/gantt'; export default { components: { DxGantt, DxFilterRow, DxColumn, // ... } } </script>
React
import React from 'react'; import 'devextreme/dist/css/dx.light.css'; import 'devexpress-gantt/dist/dx-gantt.css'; import Gantt, { FilterRow, Column, // ... } from 'devextreme-react/gantt'; const App = () => { return ( <Gantt ... > <FilterRow visible={true} /> <Column dataField="title" caption="Subject" filterValue="Scope" /> <Column dataField="start" caption="Start Date" allowFiltering={false} /> {/* ... */} </Gantt> ); }; export default App;
ASP.NET Core Controls
@(Html.DevExtreme().Gantt() .Columns(columns => { columns.AddFor(m => m.Title) .DataField("title") .Caption("Subject") .FilterValue("Scope"); columns.AddFor(m => m.Title) .DataField("start") .Caption("Start Date") .AllowFiltering(false); @* ... *@ }) .FilterRow(e => { e.Visible(true); }) // ... )
ASP.NET MVC Controls
@(Html.DevExtreme().Gantt() .Columns(columns => { columns.AddFor(m => m.Title) .DataField("title") .Caption("Subject") .FilterValue("Scope"); columns.AddFor(m => m.Title) .DataField("start") .Caption("Start Date") .AllowFiltering(false); @* ... *@ }) .FilterRow(e => { e.Visible(true); }) // ... )
The Gantt supports a predefined set of filter operations for each data type.
Underlying dataType defines in-place editor types for filter row cells:
dataType | Editor |
---|---|
string, number, object | Text box |
boolean | Drop-down list |
date | Date picker |
datetime | Date and time picker |
You can use the filterOperations property to specify necessary filter operations for each column.
jQuery
$(function() { $("#gantt").dxGantt({ columns: [{ dataField: 'title', caption: 'Subject', filterOperations: ["startswith", "endswith"] }, { // ... }] filterRow: { visible: true, } }); });
Angular
<dx-gantt ... > <dxo-filter-row [visible]="true"> </dxo-filter-row> <dxi-column dataField="title" caption="Subject" [filterOperations]="['startswith', 'endswith']"> </dxi-column> <!--...--> </dx-gantt>
import { Component } from '@angular/core'; @Component({ selector: 'app-root', templateUrl: './app.component.html', styleUrls: ['./app.component.css'] }) export class AppComponent { // ... }
import { BrowserModule } from '@angular/platform-browser'; import { NgModule } from '@angular/core'; import { AppComponent } from './app.component'; import { DxGanttModule } from 'devextreme-angular'; @NgModule({ imports: [ BrowserModule, DxGanttModule ], declarations: [AppComponent], bootstrap: [AppComponent] }) export class AppModule { }
Vue
<template> <DxGantt ... > <DxFilterRow :visible="true" /> <DxColumn data-field="title" caption="Subject" :filter-operations="['startswith', 'endswith']" /> <!--...--> </DxGantt> </template> <script> import 'devextreme/dist/css/dx.light.css'; import 'devexpress-gantt/dist/dx-gantt.css'; import { DxGantt, DxFilterRow, DxColumn, // ... } from 'devextreme-vue/gantt'; export default { components: { DxGantt, DxFilterRow, DxColumn, // ... } } </script>
React
import React from 'react'; import 'devextreme/dist/css/dx.light.css'; import 'devexpress-gantt/dist/dx-gantt.css'; import Gantt, { FilterRow, Column, // ... } from 'devextreme-react/gantt'; const App = () => { return ( <Gantt ... > <FilterRow visible={true} /> <Column dataField="title" caption="Subject" filterOperations={['startswith', 'endswith']} /> {/* ... */} </Gantt> ); }; export default App;
ASP.NET Core Controls
@(Html.DevExtreme().Gantt() .Columns(columns => { columns.AddFor(m => m.Title) .DataField("title") .Caption("Subject") .FilterOperations(new[] { GridFilterOperations.StartsWith, GridFilterOperations.EndsWith }); @* ... *@ }) .FilterRow(e => { e.Visible(true); }) // ... )
ASP.NET MVC Controls
@(Html.DevExtreme().Gantt() .Columns(columns => { columns.AddFor(m => m.Title) .DataField("title") .Caption("Subject") .FilterOperations(new[] { GridFilterOperations.StartsWith, GridFilterOperations.EndsWith }); @* ... *@ }) .FilterRow(e => { e.Visible(true); }) // ... )
If you have technical questions, please create a support ticket in the DevExpress Support Center.
We appreciate your feedback.