Если я правильно помню, элементы управления ASP.NET не завершают свой жизненный цикл, если для них установлено значение false. Это означает, что такие вещи, как Render (), не вызываются, и ViewState должен быть одной из тех вещей (что имеет смысл). Использование панелей обновления вместе с AJAX / Javascript также очень сложно, и работает не очень хорошо. Именно так работают элементы управления ASP.NET и панель обновлений.
Я предлагаю либо использовать панели обновления, либо использовать javascript, а не оба.
Вы можете легко эмулировать действия панелей обновления, используя jquery $ .post / get и заменяя часть кода на html, возвращаемый из вызова веб-службы.
function myButtonClick(event){
$.post("path/to/webservice", {data1: "data1"}, function(data, status){
$("#myPanel").replaceWith(data);
});
}
В конечном итоге вы столкнетесь и с другими проблемами, если у вас есть JS, прикрепленный к коду, который обновляется через панель обновлений. Пример: если у вас есть список элементов, к каждому из которых прикреплен JS, например, один из элементов управления ASP.NET AJAX Control Toolkit, и вы удаляете один из них со страницы с помощью панели обновления, JS используется для подключения управление будет не синхронизировано.