Динамические элементы управления ASP.net не создаются, как ожидается - PullRequest
1 голос
/ 23 июня 2010

У меня есть модуль отчетности (C # asp.net), который использует динамические элементы управления для представления изменяющихся параметров выбранных отчетов.

Динамические элементы управления создаются и отображаются нормально (XML хранится в SQL Server 2008 и XSLTдля преобразования в HTML).

Моя проблема в том, что у меня есть раскрывающийся список (не динамически создаваемый), который содержит имена отчетов в виде текста и идентификаторы отчетов в качестве значения.Этот DDL отправляет обратно, когда его выбранный индекс изменяется.Когда DDL отправляет сообщение обратно, заполняется переменная сеанса и viewstate, содержащая выбранный идентификатор отчета.Я хочу прочитать эту переменную и использовать ее для генерации элементов управления динамическими параметрами.Вот что происходит:

1.Отправляет начальное значение DDL (текст = "- Отчеты -", значение = "- 1")

2. Пользователь выбирает отчет изDDL.

3. Сообщает о выбранном пользователем значении DDL (text = "Report1", value = "1").

4.DDL отправляет сообщения назад и генерируются элементы управления динамическими параметрами.

5. Значение отчета 1 помещается в переменную session / viewstate через событие selectedindexarded в DDL.

Проблема в шаге 4, динамические элементы управления генерируются с помощьюсообщить значение -1, потому что элементы управления генерируются до того, как сработало событие selectedindexarded, и поэтому динамические элементы управления на шаг впереди DDL.

Все эти элементы управления находятся на панели обновления AJAX (все элементы управления на одной панели).

Как лучше обойти это?

Спасибо,

Богат.

1 Ответ

1 голос
/ 23 июня 2010

Лучший способ обойти это - небольшой взлом, который сэкономит вам много времени и разочарований.

В вашей процедуре построения динамического управления просто отметьте Request["MyDropDownID"] для значения, которое опубликовал ваш раскрывающийся список, скореечем ожидание загрузки viewstate и запуска обработчика события раскрывающегося списка.

Более подробное объяснение этого можно найти в моем старом ответе здесь .

...