如何获取多选复选框列到数据网格?

时间:2017-10-26 15:37:39

标签: vmware-clarity

我无法将复选框列添加到VMware Clarity数据网格中,或者通常会让多个行选择起作用。

我可以让单一选择工作得很好。

我在VMware Clarity文档中看到了示例: https://vmware.github.io/clarity/documentation/datagrid/batch-action

我觉得我正确地按照说明操作,但没有显示复选框列(如果我将其更改为单选,单选按钮列会显示)。

我的标记:

<clr-datagrid [(clrDgSelected)]="selected" [clDgRowSelection]="true">

<clr-dg-action-bar>
    <div class="btn-group">
        <button type="button" class="btn btn-sm btn-secondary" (click)="onAdd()"><clr-icon shape="plus"></clr-icon> Register</button>
        <button type="button" class="btn btn-sm btn-secondary" (click)="onDelete()" ><clr-icon shape="close"></clr-icon> Delete</button>
        <button type="button" class="btn btn-sm btn-secondary" (click)="onEdit()" *ngIf="selected?.length == 1"><clr-icon shape="pencil"></clr-icon> Edit</button>
    </div>
</clr-dg-action-bar>

<clr-dg-column>Name</clr-dg-column>
<clr-dg-column>Serial #</clr-dg-column>

<clr-dg-row *clrDgItems="let networkSystem of networkSystems"  [clrDgItem]="networkSystem">
    <clr-dg-cell>{{networkSystem.name}}</clr-dg-cell>
    <clr-dg-cell>{{networkSystem.serial_number}}</clr-dg-cell>
</clr-dg-row>

</clr-datagrid>

我已经尝试过挖掘Clarity回购中的示例,但我无法在任何地方找到这个批量选择。 (如果官方文档以某种方式包含角度组件和标记的完整源,那将会很好。)

感谢您的帮助!

1 个答案:

答案 0 :(得分:6)

您的控制器上是否设置了selected属性?如果没有,它将是未定义的,并且不会出现选择。

import { Component } from '@angular/core';

@Component({
  selector: 'my-component',
  templateUrl: './my.component.html'
})
export class MyComponent  {
  selected = [];
  networkSystems = [
    {name: 'System 1', serial_number: 'abc'},
    {name: 'System 2', serial_number: 'def'},
    {name: 'System 3', serial_number: 'ghi'},
  ]
}