App.Component.html
<ejs-treegrid #treeGridComponent [allowRowDragAndDrop]="true"
[autoCheckHierarchy]="true"
(checkboxChange)="checkboxChange($event)"
[dataSource]="data"
[treeColumnIndex]="1"
parentIdMapping='ParentItem' hasChildMapping='isParent'
(dataBound)="dataBound($event)"
idMapping="TaskID"
>
<e-columns>
<e-column
field="TaskID"
headerText="Task ID"
width="90"
textAlign="Right"
[isPrimaryKey]="true"
[showCheckbox]="true"
></e-column>
. . . .
</e-columns>
</ejs-treegrid>
App.Component.ts
export class AppComponent {
public data: DataManager;
public pageSetting: Object;
@ViewChild("treeGridComponent", { static: true }) treeGridComponent;
public selIndex: number[] = [];
ngOnInit(): void {
. . .
}
checkboxChange(args) {
this.selIndex = this.treeGridComponent.getCheckedRowIndexes();//get the checkedRowIndexes
}
dataBound(args: any) {
this.treeGridComponent.selectCheckboxes(this.selIndex); //pass the checkedRowIndex on selectCheckbox method on data reload
} |
export class AppComponent {
public treeSelectedIndexs: number[] = [];
@ViewChild("treeGridComponent", { static: true }) treeGridComponent;
updateRow() {
this.treeGridComponent.dataSource = projectData; //clear the global variable on reloading the data
}
dataBound(args: any) {
if (this.treeSelectedIndexs !== null && this.treeSelectedIndexs.length > 0)
this.treeGridComponent.selectCheckboxes(this.treeSelectedIndexs);
this.treeSelectedIndexs = []; //or clear on dataBound event
}
rowdataBound(args: any) {
if (args.data["TaskID"] == 2) {
var rowIndex = parseInt(args.row.getAttribute("aria-rowindex"));
this.treeSelectedIndexs.push(rowIndex);
}
}
</script> |