You need to use the partial refresh hijacker to use the code snippet.
This code snippet initializes Dojo Tab Containers/Dojo Content Panes in the area that's refreshed:
// Fix problem with partial refresh on Dojo Tab Container/Content pane
// Source for inspiration:
// http://www.openntf.org/projects/pmt.nsf/0/D228115FAA98DDEC86257A7D0050E7FF
dojo.subscribe( 'partialrefresh-complete', this, function( method, form, refreshId ) {
var tabContainersAndContentPanes = dojo.query( '[id=' + refreshId + '] .dijitTabContainer[widgetid], ' +
'[id=' + refreshId + '] .dijitContentPane[widgetid]' );
if( tabContainersAndContentPanes.length === 0 ) {
return;
}
for( var i = 0; i < tabContainersAndContentPanes.length; i++ ) {
var widgetId = tabContainersAndContentPanes[i].getAttribute( 'widgetid' );
var widget = dijit.byId( widgetId );
if( widget ) {
widget.startup();
widget.resize();
}
}
} );
Add the code snippet in a dojo.addOnLoad function or something similar.
If you have other widget types that fails to initialize, just modify the selector/startup commands to fix.