Предполагается, что это ASP.NET: это потому, что событие Click на вашей кнопке срабатывает после события Load на вашей странице, поэтому сеанс не был установлен.
MSDN на жизненном цикле страницы может быть хорошим чтением - нажатие кнопки является "событием обратной передачи" в таблице в этом документе.
Если у меня неправильный конец флешки, пожалуйста, объясните, какие сообщения вы получаете после нажатия кнопки, и чего вы ожидали. Некоторые фреймворки и языковые теги по этому вопросу тоже могут не сработать.