Звучит примерно как установка флажков в Page_Load. Это тот случай? Если вы заполняете элементы управления в Page_Load, вам нужно обернуть их в условное выражение:
if (!IsPostBack)
{
// populate your controls from data
}
В противном случае они будут переполняться с каждым постбэком. Если у вас есть автоответчик, или вы нажимаете кнопку, или выполняете какое-то другое действие на странице, которая инициирует обратную передачу, Page_Load вызывается перед обработчиком события. В сущности, это происходит:
- Пользователь переходит на страницу
- Page_Load снимает и устанавливает флажки
- Пользователь выбирает элемент в DropDownList (запускает обратную передачу)
- Page_Load снимает и устанавливает флажки
- Обработчик автоответчика DropDownList называется
(На заметку ... Пожалуйста, обратите внимание на использование AJAX для динамического взаимодействия клиент-сервер, подобного этому. Autopostback делает работу пользователя неудобной, а, как вы обнаруживаете, также затрудняет разработку.)