Kendo-Angular2:如何在具有自动生成列的kendo-grid中启用仅限复选框选择模式

时间:2017-10-17 05:37:15

标签: angular kendo-grid kendo-ui-angular2

我正在尝试使用自动生成的列显示kendo-grid并启用仅限复选框选择模式。

以下内容使用自动生成的列创建kendo-grid并且工作正常,(plunkr)

<kendo-grid [data]="gridData" [selectable]="true">
</kendo-grid>

但是,当我尝试添加复选框选择列时,仅显示复选框选择列。 (plunkr)

<kendo-grid [data]="gridData" [selectable]="true">
    <kendo-grid-checkbox-column showSelectAll="true"><kendo-grid-checkbox-column>
</kendo-grid>

在指定列(plunkr)

时有效
<!-- works -->
<kendo-grid [data]="gridData" [selectable]="true">
      <kendo-grid-checkbox-column showSelectAll='true'></kendo-grid-checkbox-column>
      <kendo-grid-column field="Id" title="ID"></kendo-grid-column>
      <kendo-grid-column field="CompanyName" title="Company Name"></kendo-grid-column>
</kendo-grid>

如果事先不知道列,我怎样才能使它工作?

1 个答案:

答案 0 :(得分:1)

假设对象数组中的对象具有相同的属性,可以在数组中的第一个对象上应用Object.keys()以获取属性名称,然后可以将属性名称传递给field属性kendoGridColumn组件。

像这样的东西

<kendo-grid [data]="gridData" [selectable]="{checkboxOnly: true}">
  <ng-container *ngIf="gridData?.length > 0">
    <kendo-grid-checkbox-column showSelectAll="true">
    </kendo-grid-checkbox-column>
      <ng-container *ngFor="let key of Object.keys(gridData[0])">
        <kendo-grid-column [field]="key" [title]="key">
        </kendo-grid-column>
      </ng-container>
  </ng-container>
</kendo-grid>

Stackblitz