Это действительно должно быть намного проще, поэтому я, должно быть, упускаю что-то очевидное. У меня есть C # ASP.NET страница с поддержкой AJAX. У меня также есть панель ASP.NET, которая изначально пуста, но я создаю пару раскрывающихся списков и добавляю их в код. Эта часть работает просто отлично. Однако, когда страница выполняет обратную передачу, элементы управления «исчезают», и я не могу их найти вообще. Обратите внимание, что сама панель не находится в панели обновления AJAX, я упоминаю об этом только потому, что думаю, что это может быть проблема с состоянием просмотра.
Этот код работает просто отлично:
DropDownList newList = new DropDownList();
newList.ID = string.Format("lst{0}", opt.OptionName.ToString());
foreach (SaleItemOptions myOpt in opt.OptionsInList)
{
newList.Items.Add(myOpt.OptionName);
}
this.pnlOptions.Controls.Add(newList);
Но этот код всегда возвращает NULL
DropDownList myList = (DropDownList)this.pnlOptions.FindControl("lstSize");
Я подтвердил, что имя элемента управления существует в форме, и я также использовал такие варианты, как ControlID, ID и т. Д.
Кроме того, во всем этом есть один смягчающий фактор. Я использую GCheckout API (Google Checkout для ASP.NET) для создания обратной передачи. Это действительно не должно быть проблемой, но я подумал, что упомяну это