Forum Discussion
how to call enumerateObjectInstances by code
I have panel properties with selector : ISelectionId.getSelector()
in my table view i bind event click to define with row is selected by user and show some properties in panel properties using enumerateObjectInstances, the problem are when panel properties active/show and user click some row in table view because enumerateObjectInstances not called by power bi.
it any way to call enumeration by code? i need to refresh panel properties depend row selected
- Anonymous6 years ago
solve this case use persist object
public syncSelection(ids: ISelectionId[], row: number, col: number, selector: Selector) { if (row == null) return; let enumerationObject: powerbi.VisualObjectInstanceEnumerationObject = { containers: [], instances: [], }; let persistProperties : VisualObjectInstancesToPersist; if(row == -1){ // remove from format panel this.settingDataPoint(enumerationObject, "dataPoint"); persistProperties = { remove: enumerationObject.instances } } this.selected.row = row; this.selected.col = col; this.selected.selected = ids[0]; this.selected.selectionId = ids; this.selected.selector = selector; if(row != -1) { this.settingDataPoint(enumerationObject, "dataPoint"); persistProperties = { replace : enumerationObject.instances } } // console.log('ini coba persist', persistProperties); this.host.persistProperties(persistProperties); }but I still don't understand remove and removeObject how to use it, to confused
2 Replies
- AnonymousNot applicable
it is imposible to update format panel when user click some row in our view?
I try using this.host.refreshHostData(); this solve my problem when developing,
but this not working when we use pbiviz package because enumerateObjectInstances never called
- AnonymousNot applicable
solve this case use persist object
public syncSelection(ids: ISelectionId[], row: number, col: number, selector: Selector) { if (row == null) return; let enumerationObject: powerbi.VisualObjectInstanceEnumerationObject = { containers: [], instances: [], }; let persistProperties : VisualObjectInstancesToPersist; if(row == -1){ // remove from format panel this.settingDataPoint(enumerationObject, "dataPoint"); persistProperties = { remove: enumerationObject.instances } } this.selected.row = row; this.selected.col = col; this.selected.selected = ids[0]; this.selected.selectionId = ids; this.selected.selector = selector; if(row != -1) { this.settingDataPoint(enumerationObject, "dataPoint"); persistProperties = { replace : enumerationObject.instances } } // console.log('ini coba persist', persistProperties); this.host.persistProperties(persistProperties); }but I still don't understand remove and removeObject how to use it, to confused