Reputation: 1045
I have a Kendo grid
<kendo-grid [data]="gridData">
<kendo-grid-column field="iban" title="IBAN">
</kendo-grid-column>
<kendo-grid-command-column title="command">
<ng-template kendoGridCellTemplate>
<button class="btn btn-success" (click)="btnCommand($event)">Approve</button>
</ng-template>
</kendo-grid-command-column>
</kendo-grid>
At the moment, the Approve button is just posting the event click event, how can it post the whole row data?
Here is the event handler
btnCommand($event) {
console.log($event)
}
Upvotes: 1
Views: 1388
Reputation: 31125
You could pass in arguments to the <ng-template>
tag using it's let
signature. And send it back to the event handler as it's argument.
Try the following
<ng-template kendoGridCellTemplate let-data>
<button class="btn btn-success" (click)="btnCommand(data)">Approve</button>
</ng-template>
Event handler:
public btnCommand(data: any) {
console.log(data);
}
If you need to have additional buttons with different event handling behaviors, it's better to bind different event handlers.
Template (*.html)
<ng-template kendoGridCellTemplate let-data>
<button class="btn btn-success" (click)="onApprove(data)">Approve</button>
<button class="btn" (click)="onDecline(data)">Decline</button>
</ng-template>
Controller (*.ts)
public onApprove(data: any) {
console.log(data);
// do something else
}
public onDecline(data: any) {
console.log(data);
// do something else
}
Upvotes: 2