Изменение динамических элементов управления через DropDownList на странице контента

StackOverflow https://stackoverflow.com/questions/4099329

Вопрос

Проблема: Страница контента с управлением мастером с UpdatePanel и Placeholder. Над UpdatePanel находится раскрывающееся список. Мне нужно отобразить различные элементы управления вводами ниже раскрывающегося списка, когда пользователь изменяет выбор в раскрывающемся списке. Когда пользователь нажимает «Next» по управлению мастером, мне нужно также вывести данные из этих динамических элементов управления.

Я знаю, что все динамические элементы управления должны быть созданы в методе OnInit, чтобы получить данные от этих элементов управления во время обратной связи. Однако, когда выбирается раскрывающийся список SelectionIndExChanged событие, метод OnInit называется ... затем нагрузка ... и, наконец, обработчик для выбора инжеклирования вызывается. ViewState не был восстановлен до колодца после того, как были вызваны методы OnInit & Pageload, поэтому нет способа узнать, что пользователь выбрал в поле списка в то время, когда oinit вызывается ... что именно тогда, когда я должен Создайте динамические элементы управления.

Итак ... как решить эту проблему? Вам просто нужно написать всю страницу или большую часть ее, используя JavaScript?

Заранее спасибо.

Это было полезно?

Решение

Я склонен использовать метод старой школы для такого типа требований. Я бы написал все элементы управления, которые необходимы на панели обновления, с их видимым свойством, установленным FALSE. Затем, на спине, прочитайте состояние выпадающих вниз и установите управление одобрением видимых свойств на True. Таким образом, нет «динамических» элементов управления, и из -за того, что элементы управления, чьи видимых свойств не являются ложными, не отображаются, они не загружаются до тех пор, пока пользователь не увидит их.

Другие советы

Вы также можете использовать Asp: Hiddenfield. и установите значение в корпус VAR, вы умственно создаете. Затем запустите небольшой сценарий jQuery на вершине, чтобы посмотреть

$(document).on("change", "#ddlSelector", setControls);

Тогда просто сделайте функцию, например:

function setControls(event) { 
    event.preventDefault();
    var selector = hiddenfield.val();
}

Тогда любой предмет, чтобы показать/скрыть, можно сделать с получением тега:

$("#elementName").css("display", "inline"); 

или дисплей, никто не скрывать. Я использовал это на работе, потому что иногда вам нужно изменить, не выходя поступлений, но все равно собираю данные, когда они участвуют в форме.

Обычно я избегаю jQuery для многих событий для силы кода и безопасности, но манипулирование элементом DOM может быть намного проще с jQuery.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top