|
17 | 17 | <md-radio-button [value]="'index'">Index</md-radio-button>
|
18 | 18 | </md-radio-group>
|
19 | 19 | </div>
|
| 20 | +</div> |
| 21 | + |
| 22 | +<md-card> |
| 23 | + <h3> |
| 24 | + CdkTable With Dynamic Column Def |
| 25 | + <div> |
| 26 | + <button md-raised-button |
| 27 | + (click)="addDynamicColumnDef()" |
| 28 | + [disabled]="dynamicColumnIds.length >= 4"> |
| 29 | + Add Column Def |
| 30 | + </button> |
| 31 | + <button md-raised-button |
| 32 | + (click)="removeDynamicColumnDef()" |
| 33 | + [disabled]="dynamicColumnIds.length == 0"> |
| 34 | + Remove Column Def |
| 35 | + </button> |
| 36 | + </div> |
| 37 | + </h3> |
| 38 | + |
| 39 | + <cdk-table [dataSource]="dataSource"> |
| 40 | + <ng-container [cdkColumnDef]="column.id" *ngFor="let column of dynamicColumnDefs"> |
| 41 | + <cdk-header-cell *cdkHeaderCellDef> {{column.headerText}} </cdk-header-cell> |
| 42 | + <cdk-cell *cdkCellDef="let row"> {{row[column.property]}} </cdk-cell> |
| 43 | + </ng-container> |
| 44 | + |
| 45 | + <cdk-header-row *cdkHeaderRowDef="dynamicColumnIds"></cdk-header-row> |
| 46 | + <cdk-row *cdkRowDef="let row; columns: dynamicColumnIds;"></cdk-row> |
| 47 | + </cdk-table> |
| 48 | +</md-card> |
| 49 | + |
| 50 | +<md-card> |
| 51 | + <h3>CdkTable Example</h3> |
20 | 52 |
|
21 | 53 | <div class="demo-highlighter">
|
22 | 54 | Highlight:
|
|
26 | 58 | <md-checkbox (change)="toggleHighlight('odd', $event.checked)">Odd Rows</md-checkbox>
|
27 | 59 | </div>
|
28 | 60 |
|
29 |
| - <div> |
30 |
| - <button md-raised-button (click)="addDynamicColumnDef()" [disabled]="dynamicColumnIds.length >= 4"> |
31 |
| - Add Dynamic Column Def |
32 |
| - </button> |
33 |
| - </div> |
34 |
| -</div> |
| 61 | + <cdk-table #table mdSort |
| 62 | + [dataSource]="dataSource" |
| 63 | + [trackBy]="userTrackBy"> |
| 64 | + |
| 65 | + <!-- Column Definition: ID --> |
| 66 | + <ng-container cdkColumnDef="userId"> |
| 67 | + <cdk-header-cell *cdkHeaderCellDef |
| 68 | + md-sort-header arrowPosition="before"> |
| 69 | + ID |
| 70 | + </cdk-header-cell> |
| 71 | + <cdk-cell *cdkCellDef="let row"> {{row.id}} </cdk-cell> |
| 72 | + </ng-container> |
| 73 | + |
| 74 | + <!-- Column Definition: Progress --> |
| 75 | + <ng-container cdkColumnDef="progress"> |
| 76 | + <cdk-header-cell *cdkHeaderCellDef |
| 77 | + md-sort-header start="desc"> |
| 78 | + Progress |
| 79 | + </cdk-header-cell> |
| 80 | + <cdk-cell *cdkCellDef="let row"> |
| 81 | + <div class="demo-progress-stat">{{row.progress}}%</div> |
| 82 | + <div class="demo-progress-indicator-container"> |
| 83 | + <div class="demo-progress-indicator" |
| 84 | + [style.background]="row.progress > 50 ? 'green' : 'red'" |
| 85 | + [style.opacity]="getOpacity(row.progress)" |
| 86 | + [style.width.%]="row.progress"></div> |
| 87 | + </div> |
| 88 | + </cdk-cell> |
| 89 | + </ng-container> |
| 90 | + |
| 91 | + <!-- Column Definition: Name --> |
| 92 | + <ng-container cdkColumnDef="userName"> |
| 93 | + <cdk-header-cell *cdkHeaderCellDef md-sort-header> |
| 94 | + Name |
| 95 | + </cdk-header-cell> |
| 96 | + <cdk-cell *cdkCellDef="let row"> {{row.name}} </cdk-cell> |
| 97 | + </ng-container> |
| 98 | + |
| 99 | + <!-- Column Definition: Color --> |
| 100 | + <ng-container cdkColumnDef="color"> |
| 101 | + <cdk-header-cell *cdkHeaderCellDef |
| 102 | + md-sort-header disableClear> |
| 103 | + Color |
| 104 | + </cdk-header-cell> |
| 105 | + <cdk-cell *cdkCellDef="let row" [style.color]="row.color"> {{row.color}} </cdk-cell> |
| 106 | + </ng-container> |
35 | 107 |
|
36 |
| -<h3>CdkTable With Dynamic Column Def</h3> |
37 |
| - |
38 |
| -<cdk-table [dataSource]="dataSource"> |
39 |
| - <ng-container [cdkColumnDef]="column.id" *ngFor="let column of dynamicColumns"> |
40 |
| - <cdk-header-cell *cdkHeaderCellDef> {{column.headerText}} </cdk-header-cell> |
41 |
| - <cdk-cell *cdkCellDef="let row"> {{row[column.property]}} </cdk-cell> |
42 |
| - </ng-container> |
43 |
| - |
44 |
| - <cdk-header-row *cdkHeaderRowDef="dynamicColumnIds"></cdk-header-row> |
45 |
| - <cdk-row *cdkRowDef="let row; columns: dynamicColumnIds;"></cdk-row> |
46 |
| -</cdk-table> |
47 |
| - |
48 |
| -<h3>CdkTable Example</h3> |
49 |
| - |
50 |
| -<cdk-table #table mdSort |
51 |
| - [dataSource]="dataSource" |
52 |
| - [trackBy]="userTrackBy"> |
53 |
| - |
54 |
| - <!-- Column Definition: ID --> |
55 |
| - <ng-container cdkColumnDef="userId"> |
56 |
| - <cdk-header-cell *cdkHeaderCellDef |
57 |
| - md-sort-header arrowPosition="before"> |
58 |
| - ID |
59 |
| - </cdk-header-cell> |
60 |
| - <cdk-cell *cdkCellDef="let row"> {{row.id}} </cdk-cell> |
61 |
| - </ng-container> |
62 |
| - |
63 |
| - <!-- Column Definition: Progress --> |
64 |
| - <ng-container cdkColumnDef="progress"> |
65 |
| - <cdk-header-cell *cdkHeaderCellDef |
66 |
| - md-sort-header start="desc"> |
67 |
| - Progress |
68 |
| - </cdk-header-cell> |
69 |
| - <cdk-cell *cdkCellDef="let row"> |
70 |
| - <div class="demo-progress-stat">{{row.progress}}%</div> |
71 |
| - <div class="demo-progress-indicator-container"> |
72 |
| - <div class="demo-progress-indicator" |
73 |
| - [style.background]="row.progress > 50 ? 'green' : 'red'" |
74 |
| - [style.opacity]="getOpacity(row.progress)" |
75 |
| - [style.width.%]="row.progress"></div> |
76 |
| - </div> |
77 |
| - </cdk-cell> |
78 |
| - </ng-container> |
79 |
| - |
80 |
| - <!-- Column Definition: Name --> |
81 |
| - <ng-container cdkColumnDef="userName"> |
82 |
| - <cdk-header-cell *cdkHeaderCellDef md-sort-header> |
83 |
| - Name |
84 |
| - </cdk-header-cell> |
85 |
| - <cdk-cell *cdkCellDef="let row"> {{row.name}} </cdk-cell> |
86 |
| - </ng-container> |
87 |
| - |
88 |
| - <!-- Column Definition: Color --> |
89 |
| - <ng-container cdkColumnDef="color"> |
90 |
| - <cdk-header-cell *cdkHeaderCellDef |
91 |
| - md-sort-header disableClear> |
92 |
| - Color |
93 |
| - </cdk-header-cell> |
94 |
| - <cdk-cell *cdkCellDef="let row" [style.color]="row.color"> {{row.color}} </cdk-cell> |
95 |
| - </ng-container> |
96 |
| - |
97 |
| - <cdk-header-row *cdkHeaderRowDef="displayedColumns"></cdk-header-row> |
98 |
| - <cdk-row *cdkRowDef="let row; columns: displayedColumns; |
99 |
| - let first = first; let last = last; let even = even; let odd = odd" |
100 |
| - [ngClass]="{ |
101 |
| - 'demo-row-highlight-first': highlights.has('first') && first, |
102 |
| - 'demo-row-highlight-last': highlights.has('last') && last, |
103 |
| - 'demo-row-highlight-even': highlights.has('even') && even, |
104 |
| - 'demo-row-highlight-odd': highlights.has('odd') && odd |
105 |
| - }"> |
106 |
| - </cdk-row> |
107 |
| -</cdk-table> |
| 108 | + <cdk-header-row *cdkHeaderRowDef="displayedColumns"></cdk-header-row> |
| 109 | + <cdk-row *cdkRowDef="let row; columns: displayedColumns; |
| 110 | + let first = first; let last = last; let even = even; let odd = odd" |
| 111 | + [ngClass]="{ |
| 112 | + 'demo-row-highlight-first': highlights.has('first') && first, |
| 113 | + 'demo-row-highlight-last': highlights.has('last') && last, |
| 114 | + 'demo-row-highlight-even': highlights.has('even') && even, |
| 115 | + 'demo-row-highlight-odd': highlights.has('odd') && odd |
| 116 | + }"> |
| 117 | + </cdk-row> |
| 118 | + </cdk-table> |
| 119 | +</md-card> |
108 | 120 |
|
109 | 121 | <h3>MdTable Example</h3>
|
110 | 122 |
|
|
0 commit comments