Skip to main content
Solved

Modern UI second child Grid is not refreshing when row in parent grid is selected

  • January 28, 2026
  • 2 replies
  • 58 views

Forum|alt.badge.img+1

 

I have a form with two grids, one with detail/child lines relating to the header entity, the other is analysis/grandchild lines that are specific to the selected detail line.

The Classic UI version behaves correctly. When selecting a detail line, the second grid is refreshed and shows the correct records.

The Modern UI version does not refresh the grandchild grid.

 

The classic UI uses <Behavior CommitChanges="True" RepaintControlsIDs="gridDocs"> to trigger the refresh of the grandchildren: (trimmed for brevity)

    <px:PXSplitContainer >
<Template1>
<px:PXGrid Caption="Subcontractors" KeepPosition="True" SyncPosition="True" ID="gridSubLines" .. >
...

<AutoCallBack Target="" SuppressOnReload="False" ActiveBehavior="True" Command="Refresh" Enabled="True">
<Behavior CommitChanges="True" RepaintControlsIDs="gridDocs"></Behavior>
</AutoCallBack>
<CallbackCommands>
<Navigate CommitChanges="True"></Navigate>
</CallbackCommands>
</px:PXGrid>
</Template1>
<AutoSize Enabled="true" Container="Window"></AutoSize>
<Template2>
<px:PXGrid KeepPosition="True" SyncPosition="True" Caption="Payments" ID="gridDocs">
...
</px:PXGrid>
</Template2>
</px:PXSplitContainer>

The HTML for the Modern UI is a lot cleaner:

<qp-splitter id="sp0" initial-split="60">
<split-pane>
<qp-grid id="gridSubLines" caption="Subcontractors" view.bind="SubmissionLines"></qp-grid>
</split-pane>
<split-pane>
<qp-grid id="gridDocs" caption="Payments" view.bind="LineDocsView"></qp-grid>
</split-pane>
</qp-splitter>

 

What is the equivalent for RepaintControlsIDs in Typescript? Or what do I need to add to get the typescript to trigger the repaints?

@gridConfig({
syncPosition: true,
autoAdjustColumns: true,
showFastFilter: GridFastFilterVisibility.False,
preset: GridPreset.Details
})
export class Submission extends PXView {

}

@gridConfig({
syncPosition: true,
autoAdjustColumns: true,
showFastFilter: GridFastFilterVisibility.False,
preset: GridPreset.Details
})
export class PaymentsVw extends PXView {

}

 

Best answer by allisterchambers48

Thanks ​@Marat43, that didn’t work but did point me in the right direction.

The fix was to add

	autoRepaint: ["LineDocsView"]

inside the @gridConfig of the first grid. 

@gridConfig({
syncPosition: true,
preset: GridPreset.Details,
autoRepaint: ["GrandChildView"]
})
export class Child extends PXView {
...
}

@gridConfig({
preset: GridPreset.Details,
})
export class GrandChild extends PXView {
...
}

 

autoRepaint:true gives a compiler error because it expects autoRepaint: [ string[] ]

2 replies

Forum|alt.badge.img
  • Jr Varsity I
  • January 28, 2026

Hi,

Have you tried adding autoRepaint: true inside your @gridConfig decorator for the second grid?


Forum|alt.badge.img+1

Thanks ​@Marat43, that didn’t work but did point me in the right direction.

The fix was to add

	autoRepaint: ["LineDocsView"]

inside the @gridConfig of the first grid. 

@gridConfig({
syncPosition: true,
preset: GridPreset.Details,
autoRepaint: ["GrandChildView"]
})
export class Child extends PXView {
...
}

@gridConfig({
preset: GridPreset.Details,
})
export class GrandChild extends PXView {
...
}

 

autoRepaint:true gives a compiler error because it expects autoRepaint: [ string[] ]