Что делать, если вы хотите общение через веб-сайт до Page_Load? - PullRequest
0 голосов
/ 22 октября 2009

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

В общем, я хочу, чтобы веб-части могли общаться до 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.

Ответы [ 3 ]

1 голос
/ 04 января 2012

Вы должны использовать событие OnPreRender вместо загрузки, поскольку onLoad происходит до того, как выполняется соединение WebPart.

Вот один пример того, что вы можете ожидать, используя события OnLoad и OnPreRender http://blog.mastykarz.nl/web-part-requires-clicking-twice-apply-ok-button-apply-changes/

1 голос
/ 22 октября 2009

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

0 голосов
/ 01 декабря 2009

Я закончил тем, что создал свою собственную веб-коммуникацию.

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

...