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

时间:2012-01-26 19:59:00

标签: asp.net dynamic accordion

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

        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

1 个答案:

答案 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
    }
}