Что делать, если вы хотите общение через веб-сайт до Page_Load?
-
05-07-2019 - |
Вопрос
Мне нужно создать некоторые динамические элементы управления в 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
Мне пришлось создать свое собственное общение через веб-сайт.
Это оказалось намного чище, чем у ASP.Net, и общение может произойти уже в OnInit внутри веб-частей.
Другие советы
Вы пытались подписаться на событие Init зоны веб-частей и разместить там свой InitializeProvider ()? Я считаю, что он запускается до событий OnLoad или OnInit пользовательских элементов управления и веб-форм. Р>
Вы должны использовать событие OnPreRender вместо загрузки, поскольку onLoad происходит до того, как выполняется соединение WebPart.
Вот один пример того, что вы могли бы ожидать, используя события OnLoad и OnPreRender http://blog.mastykarz.nl/web-part-requires-clicking-twice-apply-ok-button-apply-changes/