Kendo Ui for i like to enable textbox when check box is cheked only. below code. I have tried onselection of checkbox but it changing to all rows. need to change only checked row
JavaScript
x
19
19
1
<kendo-grid [data]="gridView" [height]="500" [selectable]="true" (selectionChange)="selectionChange($event)">
2
<kendo-grid-checkbox-column showSelectAll="true"></kendo-grid-checkbox-column>
3
<kendo-grid-column field="domainName" title="domainName" [width]="300"></kendo-grid-column>
4
5
6
7
<kendo-grid-column title="subdomain" field="subdomain">
8
<ng-template kendoGridCellTemplate let-column="column" let-dataItem="dataItem">
9
<kendo-textbox kendoTextBoxLocalizedMessages [(ngModel)]="dataItem.subdomain"></kendo-textbox>
10
</ng-template>
11
</kendo-grid-column>
12
--------------html-------------
13
public selectionChange(e) {
14
if(e.selectedRows.length>0){
15
}
16
if(e.deselectedRows.length>0){
17
18
}
19
Advertisement
Answer
You will need to create a function to track the selected rows:
JavaScript
1
67
67
1
import { Component } from '@angular/core';
2
import { products } from './products';
3
import { GridDataResult, PageChangeEvent, SelectAllCheckboxState } from '@progress/kendo-angular-grid';
4
5
@Component({
6
selector: 'my-app',
7
template: `
8
{{isBoxEnabled}}
9
<kendo-grid
10
[data]="gridView"
11
[pageSize]="pageSize"
12
[skip]="skip"
13
[pageable]="true"
14
(pageChange)="pageChange($event)"
15
[height]="500"
16
[selectable]="{enabled: true, checkboxOnly: true }"
17
(selectionChange)="selectionChange($event)"
18
kendoGridSelectBy="ProductID">
19
<kendo-grid-checkbox-column [width]="80">
20
<ng-template kendoGridHeaderTemplate>
21
<input class="k-checkbox" id="selectAllCheckboxId" kendoGridSelectAllCheckbox >
22
<label class="k-checkbox-label" for="selectAllCheckboxId">Text</label>
23
</ng-template>
24
</kendo-grid-checkbox-column>
25
<kendo-grid-column field="ProductName" title="Product Name" [width]="300"></kendo-grid-column>
26
<kendo-grid-column field="UnitsInStock" title="Units In Stock"></kendo-grid-column>
27
<kendo-grid-column field="UnitsOnOrder" title="Units On Order"></kendo-grid-column>
28
<kendo-grid-column field="ReorderLevel" title="Reorder Level"></kendo-grid-column>
29
</kendo-grid>
30
`
31
})
32
export class AppComponent {
33
public gridView: GridDataResult;
34
public items: any[] = products;
35
public mySelection: number[] = [];
36
public selectAllState: SelectAllCheckboxState = 'unchecked';
37
public pageSize = 10;
38
public skip = 0;
39
40
public isBoxEnabled = false;
41
42
constructor() {
43
this.loadItems();
44
}
45
46
47
public pageChange(event: PageChangeEvent): void {
48
this.skip = event.skip;
49
this.loadItems();
50
}
51
52
private loadItems(): void {
53
this.gridView = {
54
data: this.items.slice(this.skip, this.skip + this.pageSize),
55
total: this.items.length
56
};
57
}
58
59
public selectionChange(e) {
60
const selectedRowIndices = e.selectedRows.map(row => row.index)
61
const deselectedRowIndices = e.deselectedRows.map(row => row.index)
62
this.mySelection = this.mySelection.concat(selectedRowIndices)
63
this.mySelection = this.mySelection.filter(selection => !deselectedRowIndices.includes(selection))
64
this.isBoxEnabled = this.mySelection.length > 0
65
}
66
}
67
StackBlitz: https://stackblitz.com/edit/angular-ajpix8-gj9vdu?file=app/app.component.ts