ASP.NET выполняет действие после того, как ребенок контролирует пакет управления
-
29-09-2019 - |
Вопрос
У меня есть USERCONTROL, который действует как контейнер для удержания большего пользовательских ресурсов внутри него.
Мне нужно выполнить определенные проверки доступа, как только все элементы управления дочерним доступом имеют входящий в паспорт.
Я надеялся, что смогу присоединиться к мероприятию usercontrol.datuound, но, похоже, нет.
Какие еще варианты я должен сделать что-то на родительском usercontrol после того, как другие Usercontrols имеют вход в паспорт. Я предполагаю, что я должен получить контроль над ребенком, чтобы уведомить родителя, у них есть входящий в падкет, и родитель понадобится отслеживать, у которых есть входной вход, и которые не имеют и, когда все они имеют вход в банк.
Решение
Вам не нужно получать элементы управления ребенка, чтобы уведомить родителя. Посмотрите Страница ASP.NET: жизненный цикл. Отказ Вам необходимо поставить код в управлении пользователем контейнера в событии PRERENDER. Это выполняется после событий обратной связи.
Другие советы
На основе События жизненного цикла Asp.net Статья Я использовал это:
protected void Page_PreRenderComplete(object sender, EventArgs e)
{
if (!IsPostBack) //only at 1st load
UpdateSelection();
}
protected void UpdateSelection()
{
UpdateSelection(listItems.SelectedValue);
}
protected void listItems_SelectedIndexChanged(object sender, EventArgs e)
{
UpdateSelection();
}
В моем случае обновления были загружаются данные XML из файла, выбранного при раскрывающемся списке (который при запуске указывает на индекс 0) и необходимы некоторые флажки на странице, чтобы сначала были получены свои элементы из других XML-файлов, чтобы они позволили бы Код для проверки элементов на них на основе данных XML
С тех пор в UPDUSELECTORECTS просто вызывается на выделенном событии OptedIndexChanged INSExChanged (те, кто поступил в PrerenderComplete, я игнорирую их, чтобы избежать выполнения обновлений дважды)