hi
I'm already solve this, the key is not how the manager to select but how the builder to create selectionId, right as your comment.
the hard way with matrix are how to create selectionId with row parents and columns parent.
this is my function with recursive children
if (x.values) { let keys = Object.keys(x.values); keys.forEach(k => { let keyNum = Number(k); let builder = host.createSelectionIdBuilder(); copyParents.forEach(p => { builder.withMatrixNode(p, matrix.rows.levels); }); let colRef = columnsRef[keyNum]; colRef.nodes.forEach(p => { builder.withMatrixNode(p, matrix.columns.levels); }); let _td: DataListSelection = { value: x.values[k], selectionId: builder.createSelectionId(), } listSelectionPerRow.push(_td); }); }