@@ -474,6 +474,36 @@ class Row extends Component {
474474 if ( column . hideMode !== 'removeDom' || column . locked ) {
475475 isMounted = i >= mountedColumns [ 0 ] && i <= mountedColumns [ 1 ] ;
476476
477+ // Cell Recycling for Permanent Cells
478+ if ( recycle && oldCellMap ) {
479+ let oldNode = oldCellMap . get ( column . dataField ) ;
480+
481+ if ( oldNode && oldNode . data ?. recordId === recordId ) {
482+ columnPosition = columnPositions . get ( column . dataField ) ;
483+ if ( columnPosition ) {
484+ oldNode . style . left = columnPosition . x + 'px' ;
485+ oldNode . style . width = columnPosition . width + 'px' ;
486+
487+ if ( isMounted || column . locked ) {
488+ if ( columnPosition . hidden ) {
489+ oldNode . style . visibility = 'hidden'
490+ } else {
491+ oldNode . style . visibility = null ;
492+ oldNode . style . display = null ;
493+ }
494+ } else {
495+ if ( column . hideMode === 'visibility' ) {
496+ oldNode . style . visibility = 'hidden'
497+ } else if ( column . hideMode === 'display' ) {
498+ oldNode . style . display = 'none'
499+ }
500+ }
501+ }
502+ vdom . cn . push ( oldNode ) ;
503+ continue ;
504+ }
505+ }
506+
477507 cellConfig = me . applyRendererOutput ( {
478508 cache,
479509 cellId : `${ me . id } __${ column . dataField } ` ,
@@ -498,7 +528,7 @@ class Row extends Component {
498528 } ;
499529
500530 // Visibility Logic
501- if ( isMounted ) {
531+ if ( isMounted || column . locked ) {
502532 if ( columnPosition . hidden ) {
503533 cellConfig . style . visibility = 'hidden'
504534 }
0 commit comments