2009-10-22 4 views
0

Мне нужно создать некоторые динамические элементы управления в Page_Load в веб-части пользователя. В веб-части Поставщика я немного взломал и получил его, чтобы получить значение элемента управления, прежде чем viewstate будет загружен в Page_Init.Что делать, если вы хотите передать веб-страницу до Page_Load?

Так что в основном я хочу, чтобы веб-сайты могли общаться до Page_Load.

[ConnectionConsumer("FormRID Consumer","FormRIDConsumer")] 
public void InitializeProvider(MyControl.IFormRID provider) 
{ 
    theProvider = provider; 
    FormRID = theProvider.FormRID; 
} 

Этот метод не вызывается до тех пор, пока не будет Page_Load. Это большая проблема для меня, потому что мои пользователи Page_Load зависят от того, установлен ли FormRID и точна. Я не могу переместить свой код Page_Load в Page_LoadComplete либо из-за того, что мне нужно создать динамические элементы управления с помощью viewstate (viewstate не восстанавливается после Page_Load)

Итак, есть ли какая-то работа, которую я могу использовать, чтобы я мог общаться до Page_Load ,

ответ

0

В итоге мне пришлось создать собственное сообщение в веб-части.

Это оказалось намного чище, чем ASP.Net, и общение может случиться уже в OnInit внутри веб-страниц.

1

Вы пробовали подписаться на событие Init в зоне веб-зоны и разместить там InitializeProvider()? Я считаю, что он запускается перед событиями OnLoad или OnInit пользовательских элементов управления и веб-форм.

+0

Вы имеете в виду Page_Init о коде в WebPart в? – Earlz

+0

Может быть, вы могли бы дать немного больше информации? Я все еще немного новичок в веб-страницах. Как бы вы инициализировали связь вручную через страницу_Инте на странице кода веб-менеджера сайта? – Earlz

+0

Нет, а не страница или элемент управления init, но контейнерный объект WebPartZone имеет событие «Init» и «Load». «Init» будет запускаться перед классом страницы или классом управления «Init». Тем не менее, я не уверен, будет ли элемент управления, вложенный в WebPartZone, в то время находиться в правильном состоянии. В VS Designer, если вы нажмете на зону веб-части, где находится ваш элемент управления, а затем перейдите в «Свойства» и переключите свое представление на «Событие» (осветительный болт), вы увидите это событие. – TSmith