The reason may be that you are dynamically adding controls to Page_Load. That is, you add some mesh to Page_Load, and its view state is saved on the page, but then when the page is sent back and the ViewState is parsed, the engine cannot find the appropriate controls for the parsed ViewState.
This is due to the fact that the boot event (which is processed by Page_Load) is triggered after the page is fully loaded, i.e. children are created, the viewing state is analyzed and applied, but before client events, for example, when a button is pressed and is displayed on the page.
Move the addition of dynamic controls to Page_Init and make sure that they are exactly the same each time they are created, that is, when you first start the page, and when you start the page after the postback.
Useful Link ASP.NET Page Life Cycle
source share