查找动态控制(手风琴窗格)



我正在使用下面的代码在手风琴控件中创建动态窗格。从数据集中读取信息,并根据该信息生成控件。我现在在寻找这些控件时陷入了困境。当用户单击按钮时,我需要循环浏览所有控件并获取文本框中的信息。。。但我真正需要知道的是如何称呼这些该死的东西!

        Do Until b = 0
            holder = ds.Tables(0).Rows(i).Item("Issue" & z).ToString
            If holder <> "" Then
                lblTitle = New Label()
                txtContent = New TextBox()
                lblTitle.Text = "Issue" & z & " " & ds.Tables(0).Rows(i).Item("Issue" & z)
                txtContent.Text = ds.Tables(0).Rows(i).Item("Issue" & z)
                pn = New AjaxControlToolkit.AccordionPane()
                pn.ID = "Pane" & z
                pn.HeaderContainer.Controls.Add(lblTitle)
                pn.ContentContainer.Controls.Add(txtContent)
                arcPane.Panes.Add(pn)
            End If
            pncount = pncount + 1
            z = z + 1
            b = b - 1
        Loop

每个控件都有一个名为Controls的属性,它是直接子控件的集合。循环浏览它们是可能的,你可以一个接一个地检查它们,直到找到你想要的。每个控件实例还有一个名为FindControl的方法,您可以使用该方法按控件的ID查找控件。你应该能够通过这种方式找到它们。从第一个通用父控件(例如arcPane)开始。

foreach (Control pane in arcPane.Panes)
{
    foreach (Control c in pane.ContentContainer.Controls)
    {
        //examine c.ClientID or c.GetType() or some other 
                    //property that you can recognize the control by
    }
}