我試圖在我的Kendo Angular 2網格中實現一列複選框。Kendo Angular 2與複選框列的網格
我下面的文檔中的例子(不復選框): http://www.telerik.com/kendo-angular-ui/components/grid/data-binding/automatic-operations/#toc-custom-remote-directives
我已經改變了例如添加列: http://plnkr.co/edit/hNkj1ZFZJopDyFxn59B3?p=preview
這裏是我的組件:
@Component({
selector: 'my-app',
template: `
<kendo-grid
productsBinding
[pageSize]="10"
[pageable]="true"
[sortable]="true"
[height]="270">
<kendo-grid-column field="checked" title="" width="50" [headerStyle]="{'text-align': 'center'}" [style]="{'text-align': 'center'}">
<ng-template kendoGridHeaderTemplate let-dataItem>
<md-checkbox
class="check-column"
[checked]="allItemsChecked"
color="primary"
(change)="checkAllClicked($event)">
</md-checkbox>
</ng-template>
<ng-template kendoGridCellTemplate let-dataItem>
<md-checkbox
class="check-column"
[checked]="dataItem.checked"
color="primary">
</md-checkbox>
</ng-template>
</kendo-grid-column>
<kendo-grid-column field="ProductID" width="80"></kendo-grid-column>
<kendo-grid-column field="ProductName"></kendo-grid-column>
<kendo-grid-column field="UnitPrice" width="80" format="{0:c}"></kendo-grid-column>
<kendo-grid-column field="UnitsInStock" width="80"></kendo-grid-column>
</kendo-grid>
`
})
export class AppComponent {
public allItemsChecked: boolean = false;
checkAllClicked($event){
console.log("checkAllClicked",$event);
//TODO: implement...
}
}
(在Plunker中你可以看到ProductsBindingDirective
和ProductsService
的實現)
但是現在我不確定當單擊標題中的複選框時,更改所有項目的選中屬性的最佳方法是什麼...
我應該從網格中獲取數據,更改屬性在所有的項目,並將其設置回來?或者還有另一種選擇,我沒有看到?