我正在尝试使用自动生成的列显示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>
如果事先不知道列,我怎样才能使它工作?
答案 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>