Похоже, что при подключении к кнопке событие OnClick происходит не при каждой загрузке страницы, что необходимо.
Можете ли вы гарантировать, что подключение выполняется при добавлении элемента управления и после повторного добавления на страницу? Я всегда помещаю свои ловушки событий в обработчики событий Page_Init или Page_Load и вне любой проверки Postback. Попробуйте установить точку останова на обработчике Handler и посмотрите, не получит ли точка останова дважды.
Подключение события для кнопки будет выглядеть примерно так:
protected void Page_Load(object sender, EventArgs e)
{
btnSearch.Click += new EventHandler(btnSearch_Click); // breakpoint on this line
}