Any controls that you add dynamically will disappear after the postback. Therefore, it does not exist when the page returns. Like Layoric said that it is destroyed during the life cycle of the page. I would say if you can just put a hidden field inline, since it is a hidden field, and if you do not need it, just do not look at it (it can still sit there otherwise).
Keep in mind that when an ASP.NET page "goes back", it goes through the entire life cycle of the page. This means that when the page first loads, it goes through the page preinit, init, load, prerender, render, etc. Then, when it goes back, it goes through at least preinit, init and load (there may be other events, I canโt remember from my head) before any events are triggered.
source share