I resolved the issue by using the place holder Controls.Add() approach instead. By default, using such a call to the place holder control in repetitive mode will simply add the control in sequence. Thus, all other controls following the place holder are being moved one spot at a time in the index which doesn't cause any problem on postback.