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