Your search did not match any results.
List

List with Search Bar

Documentation

This demo shows the List widget with the searching capability enabled. Depending on the search mode, the widget finds entries that contain your search string or entries that only start with it.

Copy to Plunker
Apply
Reset
<div class="list-container"> <dx-list #list [dataSource]="products" [height]="400" [searchEnabled]="true" searchExpr="Name" searchMode="contains"> <div *dxTemplate="let data of 'item'"> <div>{{data.Name}}</div> </div> </dx-list> </div> <div class="options"> <div class="caption">Options</div> <div class="option"> <span>Search mode</span> <dx-select-box #searchMode [items]="['contains', 'startsWith']" [(value)]="list.searchMode"> </dx-select-box> </div> </div>
import { NgModule, Component, enableProdMode } from '@angular/core'; import { BrowserModule } from '@angular/platform-browser'; import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; import { DxSelectBoxModule, DxListModule, DxTemplateModule } from 'devextreme-angular'; import DataSource from 'devextreme/data/data_source'; import { Product, Service } from './app.service'; if(!/localhost/.test(document.location.host)) { enableProdMode(); } @Component({ selector: 'demo-app', providers: [ Service ], templateUrl: 'app/app.component.html', styleUrls: ['app/app.component.css'] }) export class AppComponent { products: Product[]; constructor(service: Service) { this.products = service.getProducts(); } } @NgModule({ imports: [ BrowserModule, DxSelectBoxModule, DxListModule, DxTemplateModule ], declarations: [AppComponent], bootstrap: [AppComponent] }) export class AppModule { } platformBrowserDynamic().bootstrapModule(AppModule);
/deep/ .dx-list-item-content > div { padding: 5px; font-size: 15px; } /deep/ .options { margin-top: 20px; padding: 20px; background: rgba(191, 191, 191, 0.15); } /deep/ .options .caption { font-size: 18px; font-weight: 500; } /deep/ .option { margin-top: 10px; } /deep/ .option > span { margin-right: 10px; } /deep/ .option > .dx-selectbox { display: inline-block; vertical-align: middle; max-width: 350px; width: 100%; }
import { Injectable } from '@angular/core'; export class Product { ID: number; Name: string; Price: number; Current_Inventory: number; Backorder: number; Manufacturing: number; Category: string; ImageSrc: string; } let products: Product[] = [{ ID: 1, Name: "HD Video Player", Price: 330, Current_Inventory: 225, Backorder: 0, Manufacturing: 10, Category: "Video Players", ImageSrc: "../../../../images/products/1.png" }, { ID: 3, Name: "SuperPlasma 50", Price: 2400, Current_Inventory: 0, Backorder: 0, Manufacturing: 0, Category: "Televisions", ImageSrc: "../../../../images/products/3.png" }, { ID: 4, Name: "SuperLED 50", Price: 1600, Current_Inventory: 77, Backorder: 0, Manufacturing: 55, Category: "Televisions", ImageSrc: "../../../../images/products/4.png" }, { ID: 5, Name: "SuperLED 42", Price: 1450, Current_Inventory: 445, Backorder: 0, Manufacturing: 0, Category: "Televisions", ImageSrc: "../../../../images/products/5.png" }, { ID: 6, Name: "SuperLCD 55", Price: 1350, Current_Inventory: 345, Backorder: 0, Manufacturing: 5, Category: "Televisions", ImageSrc: "../../../../images/products/6.png" }, { ID: 7, Name: "SuperLCD 42", Price: 1200, Current_Inventory: 210, Backorder: 0, Manufacturing: 20, Category: "Televisions", ImageSrc: "../../../../images/products/7.png" }, { ID: 8, Name: "SuperPlasma 65", Price: 3500, Current_Inventory: 0, Backorder: 0, Manufacturing: 0, Category: "Televisions", ImageSrc: "../../../../images/products/8.png" }, { ID: 9, Name: "SuperLCD 70", Price: 4000, Current_Inventory: 95, Backorder: 0, Manufacturing: 5, Category: "Televisions", ImageSrc: "../../../../images/products/9.png" }, { ID: 10, Name: "DesktopLED 21", Price: 175, Current_Inventory: null, Backorder: 425, Manufacturing: 75, Category: "Monitors", ImageSrc: "../../../../images/products/10.png" }, { ID: 12, Name: "DesktopLCD 21", Price: 170, Current_Inventory: 210, Backorder: 0, Manufacturing: 60, Category: "Monitors", ImageSrc: "../../../../images/products/12.png" }, { ID: 13, Name: "DesktopLCD 19", Price: 160, Current_Inventory: 150, Backorder: 0, Manufacturing: 210, Category: "Monitors", ImageSrc: "../../../../images/products/13.png" }, { ID: 14, Name: "Projector Plus", Price: 550, Current_Inventory: null, Backorder: 55, Manufacturing: 10, Category: "Projectors", ImageSrc: "../../../../images/products/14.png" }, { ID: 15, Name: "Projector PlusHD", Price: 750, Current_Inventory: 110, Backorder: 0, Manufacturing: 90, Category: "Projectors", ImageSrc: "../../../../images/products/15.png" }, { ID: 17, Name: "ExcelRemote IR", Price: 150, Current_Inventory: 650, Backorder: 0, Manufacturing: 190, Category: "Automation", ImageSrc: "../../../../images/products/17.png" }, { ID: 18, Name: "ExcelRemote BT", Price: 180, Current_Inventory: 310, Backorder: 0, Manufacturing: 0, Category: "Automation", ImageSrc: "../../../../images/products/18.png" }, { ID: 19, Name: "ExcelRemote IP", Price: 200, Current_Inventory: 0, Backorder: 325, Manufacturing: 225, Category: "Automation", ImageSrc: "../../../../images/products/19.png" }]; @Injectable() export class Service { getProducts() : Product[] { return products; } }
// In real applications, you should not transpile code in the browser. You can see how to create your own application with Angular and DevExtreme here: // https://github.com/DevExpress/devextreme-angular/blob/master/README.md System.config({ transpiler: 'ts', typescriptOptions: { module: "commonjs", emitDecoratorMetadata: true, experimentalDecorators: true }, meta: { 'typescript': { "exports": "ts" } }, paths: { 'npm:': 'https://unpkg.com/' }, map: { 'ts': 'npm:plugin-typescript@7.0.6/lib/plugin.js', 'typescript': 'npm:typescript@2.2.2/lib/typescript.js', '@angular/core': 'npm:@angular/core@4.1.0/bundles/core.umd.js', '@angular/common': 'npm:@angular/common@4.1.0/bundles/common.umd.js', '@angular/compiler': 'npm:@angular/compiler@4.1.0/bundles/compiler.umd.js', '@angular/platform-browser': 'npm:@angular/platform-browser@4.1.0/bundles/platform-browser.umd.js', '@angular/platform-browser-dynamic': 'npm:@angular/platform-browser-dynamic@4.1.0/bundles/platform-browser-dynamic.umd.js', '@angular/http': 'npm:@angular/http@4.1.0/bundles/http.umd.js', '@angular/router': 'npm:@angular/router@4.1.0/bundles/router.umd.js', '@angular/forms': 'npm:@angular/forms@4.1.0/bundles/forms.umd.js', 'rxjs': 'npm:rxjs@5.3.1', 'devextreme': 'npm:devextreme@17.2', 'jquery': 'npm:jquery@3.1.1/dist/jquery.min.js', 'jszip': 'npm:jszip@3.1.3/dist/jszip.min.js', 'devextreme-angular': 'npm:devextreme-angular@17.2' }, packages: { 'app': { main: './app.component.ts', defaultExtension: 'ts' }, 'devextreme': { defaultExtension: 'js' }, 'devextreme-angular': { main: 'index.js', defaultExtension: 'js' } } });
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>DevExtreme Demo</title> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0" /> <link rel="stylesheet" type="text/css" href="https://cdn3.devexpress.com/jslib/17.2.3/css/dx.spa.css" /> <link rel="stylesheet" type="text/css" href="https://cdn3.devexpress.com/jslib/17.2.3/css/dx.common.css" /> <link rel="dx-theme" data-theme="generic.light" href="https://cdn3.devexpress.com/jslib/17.2.3/css/dx.light.css" /> <link rel="dx-theme" data-theme="android5.light" href="https://cdn3.devexpress.com/jslib/17.2.3/css/dx.android5.light.css" /> <link rel="dx-theme" data-theme="ios7.default" href="https://cdn3.devexpress.com/jslib/17.2.3/css/dx.ios7.default.css" /> <link rel="dx-theme" data-theme="win10.black" href="https://cdn3.devexpress.com/jslib/17.2.3/css/dx.win10.black.css" /> <link rel="dx-theme" data-theme="win10.white" href="https://cdn3.devexpress.com/jslib/17.2.3/css/dx.win10.white.css" /> <script src="https://unpkg.com/core-js@2.4.1/client/shim.min.js"></script> <script src="https://unpkg.com/zone.js@0.6.25/dist/zone.js"></script> <script src="https://unpkg.com/reflect-metadata@0.1.3/Reflect.js"></script> <script src="https://unpkg.com/systemjs@0.19.31/dist/system.js"></script> <script src="config.js"></script> <script> System.import('app').catch(console.error.bind(console)); </script> </head> <body class="dx-viewport"> <div class="demo-container"> <demo-app>Loading...</demo-app> </div> </body> </html>