Я пытаюсь выполнить итерацию всех элементов управления внутри моей страницы, которая содержит ajaxtoolkit: tabcontainer с несколькими ajaxtoolkit: tabpanel s. Я пытаюсь сделать это рекурсивно, например:Получить все элементы управления внутри AjaxControlToolkit.TabPanel programatically
protected override void AddedControl(Control control, int index)
{
base.AddedControl(control, index);
ParseControls(control);
}
public void ParseControls(Control control)
{
foreach (Control myControl in control.Controls)
{
ParseControls(myControl);
if(myControl.GetType().ToString().ToLower() == "AjaxControlToolkit.TabPanel".ToLower())
{
AjaxControlToolkit.TabPanel tabPanel = (AjaxControlToolkit.TabPanel)myControl;
Response.Write("tabpanel id is:" + tabPanel.ID + " |tab panel no of controls:" + tabPanel.Controls.Count.ToString() + "<br />");
}
}
}
Моя проблема в том, что всякий раз, когда я нахожу TabPanel я не могу перебирать свою коллекцию управления, потому что TabPanel.Controls.Count всегда возвращает 0, хотя на странице ASPX Я добавил текстовые поля, ярлыки и так далее. Я также пробовал искать элемент внутри TabPanel с помощью метода FindControl, но это не помогло мне.
HtmlTable tbl = (HtmlTable)tabPanel.FindControl("tblContent");
Может кто-нибудь указать мне, что мне не хватает? Спасибо!
Если вы просто получить доступ к вашему 'TabContainer' непосредственно в коде вы можете перебирать его панелей? –
Такая же проблема, я пробовал и так. Он видит TabPanels, но никаких элементов управления внутри них нет. – Crista23