Получение значения динамических элементов управления после Page_Load в С#?

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

Вопрос

У меня есть две веб-части, которые взаимодействуют.Поставщик не может передать значение (RID) потребителю, по крайней мере, до события Page_Load поставщика.Таким образом, потребитель не может узнать необходимый ему RID до тех пор, пока не произойдет Page_Load.Итак, я подключился к Page_LoadComplete.Теперь есть проблема.Потребитель создает динамические элементы управления на основе этого RID.

Сейчас.Эти динамически созданные элементы управления создаются после Page_Load.Таким образом, их состояние просмотра не восстанавливается (хотя динамические элементы управления, созданные внутри Page_Load, восстанавливают свои значения).

Итак, в основном мне нужен способ либо восстановить состояние представления элемента управления вручную, либо получить значение элемента управления из переменной POST или эквивалента на C#..

Кроме того, если бы я мог получить значение элемента управления в Page_Init, это тоже сработало бы.

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

Решение

Вся информация, возвращаемая из сообщения, в парах ключ/значение Request.Form.Если вы проверите там и выполните поиск идентификатора элемента управления в ключах, вы сможете получить значение, не просматривая состояние просмотра.

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

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

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

ViewState.Add("myRID", RID)

Или вы можете сохранить его в SessionState и не перегружать ViewState, поскольку ViewState в любом случае имеет тенденцию становиться слишком большим.Я бы выбрал SessionState.

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