У меня тоже была такая же проблема. Решение, которое сработало для меня, заключалось в следующем: чтобы сделать viewstate равным true для страницы, если не для страницы, мы можем сделать то же самое только для элементов управления списком. Тогда даже если произойдет какая-либо ошибка на стороне сервера, элементы управления списком сохранят свои значения.
Другое решение той же проблемы:
Всякий раз, когда приходит ответ ajax, мы можем сохранить его в скрытом вводе (как обсуждалось выше), но нам не нужно иметь слишком много скрытых входов для одного и того же, его можно обработать, используя только 1 скрытую переменную ввода.
Всякий раз, когда приходит ответ ajax, нам нужно добавить значение того же скрытого поля ввода (для дифференциации нам нужно добавить имя списка в этом значении), тогда мы можем легко связать элементы управления без повторной отправки вызовов ajax.