Your search did not match any results.

Grouped List

The List widget can display items in groups if they are arranged so in the data source. Groups have captions, which are customized in this demo.
<div class="list-container"> <dx-list height="100%" [dataSource]="employees" [grouped]="true" [collapsibleGroups]="true"> <div *dxTemplate="let item of 'group'"> <div>Assigned: {{item.key}}</div> </div> </dx-list> </div>
import { NgModule, Component } from '@angular/core'; import { BrowserModule } from '@angular/platform-browser'; import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; import { DxListModule, DxTemplateModule } from 'devextreme-angular'; import { Employee, Service } from './app.service'; @Component({ selector: 'demo-app', providers: [ Service ], templateUrl: 'app/app.component.html', styleUrls: ['app/app.component.css'] }) export class AppComponent { employees: Employee[]; constructor(service: Service) { this.employees = service.getEmployees(); } } @NgModule({ imports: [ BrowserModule, DxListModule, DxTemplateModule ], declarations: [AppComponent], bootstrap: [AppComponent] }) export class AppModule { } platformBrowserDynamic().bootstrapModule(AppModule);
/deep/ .list-container { min-height: 440px; width: 100%; height: auto; position: absolute; top: 0; bottom: 0; }
import { Injectable } from '@angular/core'; export class Employee { key: string; items: string[]; } let employees: Employee[] = [{ key: "Mr. John Heart", items: ["Choose between PPO and HMO Health Plan", "Google AdWords Strategy", "New Brochures", "Update NDA Agreement", "Review Product Recall Report by Engineering Team"] }, { key: "Mrs. Olivia Peyton", items: ["Update Personnel Files", "Review Health Insurance Options Under the Affordable Care Act", "Non-Compete Agreements", "Give Final Approval for Refunds"] }, { key: "Mr. Robert Reagan", items: ["Deliver R&D Plans for 2013", "Decide on Mobile Devices to Use in the Field", "Try New Touch-Enabled WinForms Apps", "Approval on Converting to New HDMI Specification"] }, { key: "Ms. Greta Sims", items: ["Approve Hiring of John Jeffers", "Update Employee Files with New NDA", "Provide New Health Insurance Docs"] }, { key: "Mr. Brett Wade", items: ["Prepare 3013 Marketing Plan", "Rollout of New Website and Marketing Brochures", "Review 2012 Sales Report and Approve 2013 Plans", "Review Site Up-Time Report"] }, { key: "Mrs. Sandra Johnson", items: ["Approve Hiring of John Jeffers", "Update Employee Files with New NDA", "Provide New Health Insurance Docs", "Review HR Budget Company Wide", "Final Budget Review"] }, { key: "Mr. Kevin Carter", items: ["Sign Updated NDA", "Review Overtime Report", "Upgrade Server Hardware", "Upgrade Personal Computers"] }, { key: "Ms. Cynthia Stanwick", items: ["Prepare 2013 Financial", "Sign Updated NDA", "Update Revenue Projections", "Submit D&B Number to ISP for Credit Approval"] }, { key: "Dr. Kent Samuelson", items: ["Update Sales Strategy Documents", "Sign Updated NDA", "Review Revenue Projections", "Refund Request Template"] }]; @Injectable() export class Service { getEmployees() : Employee[] { return employees; } }
// In real applications, you should not transpile code in the browser. You can see how to create your own application with Angular 2 and DevExtreme here: // System.config({ transpiler: 'ts', typescriptOptions: { module: "commonjs", emitDecoratorMetadata: true, experimentalDecorators: true }, meta: { 'typescript': { "exports": "ts" } }, paths: { 'npm:': '' }, map: { 'ts': 'npm:plugin-typescript@4.0.10/lib/plugin.js', 'typescript': 'npm:typescript@2.0.6/lib/typescript.js', '@angular/core': 'npm:@angular/core@2.4.3/bundles/core.umd.js', '@angular/common': 'npm:@angular/common@2.4.3/bundles/common.umd.js', '@angular/compiler': 'npm:@angular/compiler@2.4.3/bundles/compiler.umd.js', '@angular/platform-browser': 'npm:@angular/platform-browser@2.4.3/bundles/platform-browser.umd.js', '@angular/platform-browser-dynamic': 'npm:@angular/platform-browser-dynamic@2.4.3/bundles/platform-browser-dynamic.umd.js', '@angular/http': 'npm:@angular/http@2.4.3/bundles/http.umd.js', '@angular/router': 'npm:@angular/router@3.4.3/bundles/router.umd.js', '@angular/forms': 'npm:@angular/forms@2.4.3/bundles/forms.umd.js', 'rxjs': 'npm:rxjs@5.0.3', 'devextreme': 'npm:devextreme@16.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@16.2' }, packages: { 'app': { main: './app.component.ts', defaultExtension: 'ts' }, 'devextreme': { defaultExtension: 'js' }, 'devextreme-angular': { main: 'index.js', defaultExtension: 'js' } } });
<!DOCTYPE html> <html xmlns=""> <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="" /> <link rel="stylesheet" type="text/css" href="" /> <link rel="dx-theme" data-theme="generic.light" href="" /> <link rel="dx-theme" data-theme="android5.light" href="" /> <link rel="dx-theme" data-theme="ios7.default" href="" /> <link rel="dx-theme" data-theme="" href="" /> <link rel="dx-theme" data-theme="win10.white" href="" /> <script src=""></script> <script src=""></script> <script src=""></script> <script src=""></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>