MSDN 隠しフィールド セクションによると、
ページの処理中に隠しフィールドの値を使用できるようにするには、HTTP POST コマンドを使用してページを送信する必要があります。非表示フィールドを使用していて、リンクまたは HTTP GET コマンドに応答してページが処理される場合、非表示フィールドは使用できません。
デザイン タイムに HiddenField コントロールを追加し、デザイン タイムまたは ASP.NET の Init イベントで値を設定すると、ページが最初に要求されたときに値を読み取ったり処理したりできないのはなぜですか?