JavaScript/jQuery TreeList - columns.headerFilter.search
Configures the header filter's search functionality.
jQuery
JavaScript
$(function(){
$("#treelist").dxtreelist({
// ...
columns: [
{
// ...
headerFilter: {
// ...
search: {
editorOptions: {
placeholder: 'Search city or state',
mode: 'text'
},
enabled: true,
timeout: 900,
searchExpr: ['City', 'State'],
mode: 'equals',
},
}
},
// ...
],
})
});Angular
app.component.html
app.component.ts
app.module.ts
<dx-treelist ... >
<dxi-column ... >
<dxo-header-filter ... >
<dxo-search
[editorOptions]="searchEditorOptions"
[enabled]="true"
[timeout]="900"
[searchExpr]="searchFields"
mode="equals"
></dxo-search>
</dxo-header-filter>
</dxi-column>
</dx-treelist>
import { Component } from '@angular/core';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
searchEditorOptions;
searchFields;
constructor() {
this.searchEditorOptions = {
placeholder: 'Search city or state',
mode: 'text'
};
this.searchFields = ['City', 'State'];
// ...
}
// ...
}
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { AppComponent } from './app.component';
import { DxtreelistModule } from 'devextreme-angular';
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
DxtreelistModule
],
providers: [ ],
bootstrap: [AppComponent]
})
export class AppModule { } Vue
App.vue (Options API)
App.vue (Composition API)
<template>
<Dxtreelist ... >
<DxColumn ... >
<DxHeaderFilter ... >
<DxSearch
:editor-options="searchEditorOptions"
:enabled="true"
:timeout="900"
:searchExpr="searchFields"
mode="equals"
/>
</DxHeaderFilter>
</DxColumn>
</Dxtreelist>
</template>
<script>
import 'devextreme/dist/css/dx.light.css';
import Dxtreelist, {
DxColumn,
DxHeaderFilter,
DxSearch,
// ...
} from 'devextreme-vue/treelist';
export default {
components: {
Dxtreelist,
DxColumn,
DxHeaderFilter,
DxSearch,
// ...
},
data() {
return {
searchEditorOptions: {
placeholder: 'Search city or state',
mode: 'text'
},
searchFields: ['City', 'State']
};
}
}
</script>
<template>
<Dxtreelist ... >
<DxColumn ... >
<DxHeaderFilter ... >
<DxSearch
:editor-options="searchEditorOptions"
:enabled="true"
:timeout="900"
:searchExpr="searchFields"
mode="equals"
/>
</DxHeaderFilter>
</DxColumn>
</Dxtreelist>
</template>
<script setup>
import 'devextreme/dist/css/dx.light.css';
import Dxtreelist, {
DxColumn,
DxHeaderFilter,
DxSearch,
// ...
} from 'devextreme-vue/treelist';
const searchFields = ['City', 'State'];
const searchEditorOptions = {
placeholder: 'Search city or state',
mode: 'text'
};
// ...
</script>React
App.js
import React from 'react';
import 'devextreme/dist/css/dx.light.css';
import treelist, {
Column,
HeaderFilter,
Search,
// ...
} from 'devextreme-react/data-grid';
const searchFields = ['City', 'State'];
const searchEditorOptions = {
placeholder: 'Search city or state',
mode: 'text'
};
export default function App() {
return (
<treelist ... >
<Column ... >
<HeaderFilter ... >
<Search
editorOptions={searchEditorOptions}
enabled={true}
timeout={700}
searchExpr={searchFields}
mode="equals"
/>
</HeaderFilter>
</Column>
</treelist>
);
} See Also
editorOptions
Type:
any
Default Value: {}
See the TextBox Configuration topic for information about properties you can specify in this object.
Angular
NOTE
The nested component that configures the editorOptions property does not support event bindings and two-way property bindings.
Vue
NOTE
The nested component that configures the editorOptions property does not support event bindings and two-way property bindings.
jQuery
JavaScript
$(function(){
$("#treelist").dxtreelist({
// ...
columns: [
{
// ...
headerFilter: {
// ...
search: {
editorOptions: {
placeholder: 'Search city or state',
mode: 'text',
onValueChanged: (e) => {
// handle the value change here
}
},
// ...
},
}
},
// ...
],
})
});Angular
app.component.html
app.component.ts
app.module.ts
<dx-treelist ... >
<dxi-column ... >
<dxo-header-filter ... >
<dxo-search
[editorOptions]="searchEditorOptions"
// ...
></dxo-search>
</dxo-header-filter>
</dxi-column>
</dx-treelist>
import { Component } from '@angular/core';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
searchEditorOptions;
constructor() {
this.searchEditorOptions = {
placeholder: 'Search city or state',
mode: 'text',
onValueChanged: (e) => {
// handle the value change here
}
};
// ...
}
// ...
}
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { AppComponent } from './app.component';
import { DxtreelistModule } from 'devextreme-angular';
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
DxtreelistModule
],
providers: [ ],
bootstrap: [AppComponent]
})
export class AppModule { } Vue
App.vue (Options API)
App.vue (Composition API)
<template>
<Dxtreelist ... >
<DxColumn ... >
<DxHeaderFilter ... >
<DxSearch
:editor-options="searchEditorOptions"
// ...
/>
</DxHeaderFilter>
</DxColumn>
</Dxtreelist>
</template>
<script>
import 'devextreme/dist/css/dx.light.css';
import Dxtreelist, {
DxColumn,
DxHeaderFilter,
DxSearch,
// ...
} from 'devextreme-vue/treelist';
export default {
components: {
Dxtreelist,
DxColumn,
DxHeaderFilter,
DxSearch,
// ...
},
data() {
return {
searchEditorOptions: {
placeholder: 'Search city or state',
mode: 'text',
onValueChanged: this.handleValueChange
}
};
},
methods: {
handleValueChange(e) {
// handle the value change here
}
}
}
</script>
<template>
<Dxtreelist ... >
<DxColumn ... >
<DxHeaderFilter ... >
<DxSearch
:editor-options="searchEditorOptions"
// ...
/>
</DxHeaderFilter>
</DxColumn>
</Dxtreelist>
</template>
<script setup>
import 'devextreme/dist/css/dx.light.css';
import Dxtreelist, {
DxColumn,
DxHeaderFilter,
DxSearch,
// ...
} from 'devextreme-vue/treelist';
const searchEditorOptions = {
placeholder: 'Search city or state',
mode: 'text',
onValueChanged: (e) => {
// handle the value change here
}
};
// ...
</script>React
App.js
import React from 'react';
import 'devextreme/dist/css/dx.light.css';
import treelist, {
Column,
HeaderFilter,
Search,
// ...
} from 'devextreme-react/data-grid';
const searchEditorOptions = {
placeholder: 'Search city or state',
mode: 'text',
onValueChanged: (e) => {
// handle the value change here
}
};
export default function App() {
return (
<treelist ... >
<Column ... >
<HeaderFilter ... >
<Search
editorOptions={searchEditorOptions}
// ...
/>
</HeaderFilter>
</Column>
</treelist>
);
} See Also
mode
Specifies a comparison operation used to search header filter values.
Type:
Default Value: 'contains'
searchExpr
Specifies a data object's field name or an expression whose value is compared to the search string.
jQuery
JavaScript
$(function(){
$("#treelist").dxtreelist({
// ...
columns: [
{
// ...
headerFilter: {
// ...
search: {
// ...
searchExpr: ['City', 'State'],
},
}
},
// ...
],
})
});Angular
app.component.html
app.component.ts
app.module.ts
<dx-treelist ... >
<dxi-column ... >
<dxo-header-filter ... >
<dxo-search ...
[searchExpr]="searchFields"
></dxo-search>
</dxo-header-filter>
</dxi-column>
</dx-treelist>
import { Component } from '@angular/core';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
searchFields;
constructor() {
this.searchFields = ['City', 'State'];
// ...
}
// ...
}
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { AppComponent } from './app.component';
import { DxtreelistModule } from 'devextreme-angular';
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
DxtreelistModule
],
providers: [ ],
bootstrap: [AppComponent]
})
export class AppModule { } Vue
App.vue (Options API)
App.vue (Composition API)
<template>
<Dxtreelist ... >
<DxColumn ... >
<DxHeaderFilter ... >
<DxSearch ...
:searchExpr="searchFields"
/>
</DxHeaderFilter>
</DxColumn>
</Dxtreelist>
</template>
<script>
import 'devextreme/dist/css/dx.light.css';
import Dxtreelist, {
DxColumn,
DxHeaderFilter,
DxSearch,
// ...
} from 'devextreme-vue/treelist';
export default {
components: {
Dxtreelist,
DxColumn,
DxHeaderFilter,
DxSearch,
// ...
},
data() {
return {
searchFields: ['City', 'State']
};
}
}
</script>
<template>
<Dxtreelist ... >
<DxColumn ... >
<DxHeaderFilter ... >
<DxSearch ...
:searchExpr="searchFields""
/>
</DxHeaderFilter>
</DxColumn>
</Dxtreelist>
</template>
<script setup>
import 'devextreme/dist/css/dx.light.css';
import Dxtreelist, {
DxColumn,
DxHeaderFilter,
DxSearch,
// ...
} from 'devextreme-vue/treelist';
const searchFields = ['City', 'State'];
// ...
</script>React
App.js
import React from 'react';
import 'devextreme/dist/css/dx.light.css';
import treelist, {
Column,
HeaderFilter,
Search,
// ...
} from 'devextreme-react/data-grid';
const searchFields = ['City', 'State'];
export default function App() {
return (
<treelist ... >
<Column ... >
<HeaderFilter ... >
<Search ...
searchExpr={searchFields}
/>
</HeaderFilter>
</Column>
</treelist>
);
}