Я создал пользовательский элемент управления нижнего колонтитула, в который я динамически добавляю элементы управления, основываясь на ряде факторов. Я хочу, чтобы некоторые из этих элементов управления были триггерами для UpdatePanel на той же странице.
У меня есть следующее в коде:
private void SetupFooter()
{
WebToolBar footerToolBar = this.ShowFooterToolBar("~/ToolBars/PM_Footer.ascx");
footerToolBar.ID = "PM_Footer";
footerToolBar.OnNotify += new WebToolBar.OnNotifyHandler(footerToolBar_OnNotify);
WebToolButton button = new WebToolButton();
button.ID = "btn_Add";
button.Text = "Add";
button.ImageDefault = "~/Images/Icons/16/Plus.png";
button.CommandName = "Add";
button.Group = "1";
footerToolBar.AddWebToolButton(button);
AsyncPostBackTrigger trigger = new AsyncPostBackTrigger();
trigger.ControlID = button.ID;
trigger.EventName = "Click";
pnl_Suppliers.Triggers.Add(trigger);
}
Я получаю ошибку:
Не удалось найти элемент управления с идентификатором 'btn_Add' для триггера в UpdatePanel 'pnl_Suppliers'.
Если я добавлю WebToolButton (в основном ImageButton с текстом, который я сделал) непосредственно на страницу, а не внутри UserControl, то он будет работать отлично. К сожалению, я надеялся, что смогу заставить это работать в моем UserControl («PM_Footer.ascx»), поскольку он инкапсулирует множество вспомогательных функций и перехватчиков событий.
Это вообще возможно? Я держусь за соломинку и попытался вместо этого назначить UniqueID и ClientID панели обновлений, но просто кажется, что любой элемент управления в другом пользовательском элементе управления не может использоваться в качестве триггера для UpdatePanel ... что имеет смысл в некотором смысле.