我正在使用下面的代码在手风琴控件中创建动态窗格。从数据集中读取信息,并根据该信息生成控件。在找到这些控件时,我现在陷入困境。当用户点击按钮时,我需要遍历所有控件并获取文本框内的信息......但我真正需要知道的是如何调用这些东西!
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
答案 0 :(得分:-1)
每个控件都有一个名为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
}
}