Заполнение элементов управления asp.net с использованием JavaScript не может быть прочитано на стороне сервера

У меня есть раскрывающийся список ASP.Net, который заполняется с помощью JavaScript следующим образом:

Выпадающий список:

<asp:DropDownList ID="Ddl" runat="server" AutoPostBack="true"
       EnableViewState="true"></asp:DropDownList>

Код JavaScript, который заполняет раскрывающийся список "текстом":

var select = document.getElementById('<%= Ddl.ClientID %>');
var option = document.createElement("option");
option.value = '1';
option.innerHTML = "Text";
select.appendChild(option);

Он отлично заполняется на стороне клиента. Я добавил кнопку, которая должна работать на стороне сервера. На стороне сервера, когда я пытаюсь получить выбранное значение ddl; это дает исключение (Ссылка на объект не установлена ​​на экземпляр объекта.)

Я понимаю, что элемент управления ASP.Net ddl теряет содержимое после отправки формы на сервер? Как бы я решил эту проблему? Я попытался поместить значение в скрытое поле и попробуйте использовать Request.Form["HiddenField"].toString(); но это дает ту же ошибку. Любая помощь?

1 ответ

Решение

Как вы утверждаете, вы не можете заполнить раскрывающийся список на стороне клиента, и серверная сторона знает ListItem объекты есть. Это потому, что они не отправляются обратно на сервер: только выбранное значение.

Возможно, вам повезет больше, даже не используя DropDownList, Создайте раскрывающийся список как HTML select тег. Обязательно установите name атрибут (или он не будет поднят при обратной передаче). Затем используйте Request.Form коллекция для доступа к выбранному значению для HTML select,

Единственная причина использовать DropDownList что я могу придумать, учитывая то, что вы сказали нам, было бы, если в какой-то момент вы намереваетесь связать его на стороне сервера, из данных на стороне сервера, или если вы хотите изменить его внешний вид на основе стороны сервера расчет, но не хочу устанавливать вызов Ajax. Если вы не хотите делать ни одну из этих вещей, select может служить вам лучше.

Другие вопросы по тегам