У меня есть проблема с получением данных из выпадающего списка ASP.NET после его заполнения через JavaScript. На странице использую элемент автозаполнения, который добавляет варианты в DropDownList с помощью jQuery. Для этого пришлось отключить EnableEventValidation=“false”. После отправки формы нужно получить все значения элементов option, которые были добавлены динамически через скрипт. Какой лучший способ это сделать? AJAX.NET пока не использую, но готов рассмотреть если других вариантов нет.
Сталкивался с этим пару месяцев назад. Проще всего - берешь HiddenField и через JavaScript при каждом изменении DropDownList записываешь туда JSON со всеми опциями. На сервере десериализуешь строку и получаешь все добавленные элементы. Работает без глюков, проверял на нескольких проектах. Минус только один - трафика чуть больше, но для обычных форм не критично.
Попробуй через Request.Form напрямую к элементам обращаться. У меня такая же фигня была с чекбоксами. Request.Form[“ddl_name”] вытащит выбранное значение, даже если скриптом добавлено. Только со всеми опциями не знаю как будет - я только с выбранной возился.
Можешь использовать Page.RegisterHiddenField() - создаёшь скрытое поле и дублируешь туда значения через JavaScript каждый раз, когда добавляешь option в DropDownList. На бэкенде читаешь как обычную переменную. У меня работало с динамическими select’ами (правда, обычный HTML был, не серверный контрол), но принцип такой же.