Skip to content

Commit f498715

Browse files
authored
CardView - demos - selection (DevExpress#29980)
1 parent 24991c4 commit f498715

File tree

21 files changed

+2531
-602
lines changed

21 files changed

+2531
-602
lines changed
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
.options {
2+
margin-top: 20px;
3+
padding: 20px;
4+
background-color: rgba(191, 191, 191, 0.15);
5+
}
6+
7+
.options-container {
8+
display: flex;
9+
flex-wrap: wrap;
10+
align-items: center;
11+
}
12+
13+
.caption {
14+
font-size: 18px;
15+
font-weight: 500;
16+
}
17+
18+
.option {
19+
margin: 10px;
20+
width: fit-content;
21+
}
22+
23+
.option > .dx-selectbox {
24+
width: 150px;
25+
display: inline-block;
26+
vertical-align: middle;
27+
}
28+
29+
.option > span {
30+
margin-right: 10px;
31+
}
Lines changed: 54 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,55 @@
1-
<dx-card-view id="cardView" [dataSource]="customers" keyExpr="ID">
2-
<dxi-card-view-column
3-
*ngFor="let column of columns"
4-
[dataField]="column"
5-
></dxi-card-view-column>
1+
<div class="options">
2+
<div class="caption">Options</div>
3+
<div class="options-container">
4+
<div class="option">
5+
<span>Selection Mode</span>
6+
<dx-select-box
7+
[dataSource]="['single', 'multiple']"
8+
[inputAttr]="{ 'aria-label': 'Selection Mode' }"
9+
[(value)]="selectionMode"
10+
(onValueChanged)="clearSelection()"
11+
></dx-select-box>
12+
</div>
13+
<div class="option">
14+
<span>Show Checkboxes Mode</span>
15+
<dx-select-box
16+
[dataSource]="['always', 'none', 'onClick', 'onLongTap']"
17+
[inputAttr]="{ 'aria-label': 'Show Checkboxes Mode' }"
18+
[(value)]="showCheckBoxesMode"
19+
[disabled]="selectionMode !== 'multiple'"
20+
></dx-select-box>
21+
</div>
22+
<div class="option">
23+
<span>Select All Mode</span>
24+
<dx-select-box
25+
[dataSource]="['allPages', 'page']"
26+
[inputAttr]="{ 'aria-label': 'Select All Mode' }"
27+
[(value)]="selectAllMode"
28+
[disabled]="selectionMode !== 'multiple' || !allowSelectAll"
29+
></dx-select-box>
30+
</div>
31+
<div class="option">
32+
<dx-check-box
33+
text="Allow Select All"
34+
[(value)]="allowSelectAll"
35+
[disabled]="selectionMode !== 'multiple'"
36+
></dx-check-box>
37+
</div>
38+
</div>
39+
</div>
40+
<dx-card-view [dataSource]="employees" keyExpr="ID" [selectedCardKeys]="[4, 6]">
41+
<dxo-card-view-card-cover
42+
[altExpr]="altExpr"
43+
[imageExpr]="imageExpr"
44+
></dxo-card-view-card-cover>
45+
<dxo-card-view-selection
46+
[mode]="selectionMode"
47+
[showCheckBoxesMode]="showCheckBoxesMode"
48+
[allowSelectAll]="allowSelectAll"
49+
[selectAllMode]="selectAllMode"
50+
></dxo-card-view-selection>
51+
<dxi-card-view-column dataField="FullName"></dxi-card-view-column>
52+
<dxi-card-view-column dataField="Position"></dxi-card-view-column>
53+
<dxi-card-view-column dataField="Phone"></dxi-card-view-column>
54+
<dxi-card-view-column dataField="Email"></dxi-card-view-column>
655
</dx-card-view>

apps/demos/Demos/CardView/Selection/Angular/app/app.component.ts

Lines changed: 29 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
import { NgModule, Component, enableProdMode } from '@angular/core';
1+
import { NgModule, Component, enableProdMode, ViewChild } from '@angular/core';
22
import { BrowserModule } from '@angular/platform-browser';
33
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
4-
import { DxCardViewModule } from 'devextreme-angular';
5-
import { Customer, Service } from './app.service';
4+
import { DxCardViewComponent, DxCardViewModule, DxSelectBoxModule, DxCheckBoxModule } from 'devextreme-angular';
5+
import { Employee, Service } from './app.service';
66

77
if (!/localhost/.test(document.location.host)) {
88
enableProdMode();
@@ -17,22 +17,45 @@ if (window && window.config?.packageConfigPaths) {
1717
@Component({
1818
selector: 'demo-app',
1919
templateUrl: `.${modulePrefix}/app.component.html`,
20+
styleUrls: [`.${modulePrefix}/app.component.css`],
2021
providers: [Service],
2122
})
2223
export class AppComponent {
23-
customers: Customer[];
24+
@ViewChild(DxCardViewComponent, { static: true }) cardView: DxCardViewComponent;
2425

25-
columns = ['CompanyName', 'City', 'State', 'Phone', 'Fax'];
26+
employees: Employee[];
27+
28+
selectionMode = 'multiple';
29+
30+
allowSelectAll = true;
31+
32+
showCheckBoxesMode = 'always';
33+
34+
selectAllMode = 'allPages';
2635

2736
constructor(service: Service) {
28-
this.customers = service.getCustomers();
37+
this.employees = service.getEmployees();
38+
}
39+
40+
altExpr({ FullName }: Employee): string {
41+
return `Photo of ${FullName}`;
42+
}
43+
44+
imageExpr({ FullName }: Employee): string {
45+
return `../../../../images/employees/new/${FullName}.jpg`;
46+
}
47+
48+
clearSelection() {
49+
this.cardView.instance.clearSelection();
2950
}
3051
}
3152

3253
@NgModule({
3354
imports: [
3455
BrowserModule,
3556
DxCardViewModule,
57+
DxSelectBoxModule,
58+
DxCheckBoxModule,
3659
],
3760
declarations: [AppComponent],
3861
bootstrap: [AppComponent],

0 commit comments

Comments
 (0)