Вы попытались перезагрузить, так как Вы устанавливаете переменную среды?
кажется, что Windows сохраняет, это - переменная среды в своего рода кэше, и перезагрузка является одним методом для обновления его. Я не уверен, но может быть другой метод, но если Вы не собираетесь быть изменением Вашего значения переменной слишком часто, это может быть достаточно хорошо.
Скорее всего, вы отключили ViewState для страницы.
Причина в том, что при выполнении обратной передачи все элементы управления в ретрансляторе восстанавливаются из данных в состоянии просмотра в обычном режиме. Затем объект, который должен получить событие, идентифицируется на основе идентификатора элемента управления, и событие маршрутизируется.
Если вы отключите состояние просмотра, дерево элементов управления не будет перестраиваться во время обратной передачи, и, следовательно, элемент управления, который должен получить событие не существует в памяти. Итак, событие умирает.
Если вы действительно хотите отключить состояние просмотра, но все же хотите получать событие, у меня есть обходной путь (и он совсем не грязный). Я давно думал о том, чтобы написать об этом в блоге, поэтому, если хотите, я могу немного отвлечься от своих обычных дел и описать это.
Изменить: обходной путь описан здесь: http://petesdotnet.blogspot.dk/2009/08/asp.html
Я не уверен в этом, но вам, возможно, придется установить свойства CommandName и, необязательно, CommandArgument для кнопки, вызывающей ItemCommand событие. В противном случае ASP.NET предположит, что на странице нет кнопки, для которой вы хотели бы запустить событие. Вы можете попробовать это.
Кроме того, если вы не различаете имена команд, почему бы вместо этого не использовать событие Click каждой кнопки? Просто подпишитесь на те, которые указаны в репитере ItemCreated или ItemDataBound .
.Попробуйте использовать Page_init вместо Page_load, и это должно решить проблему.