Linq迭代一个控件集合

时间:2009-06-29 18:59:39

标签: vb.net linq

   Private Function GetWebDataGridOKButtonId() As String
        Dim ctls As ControlCollection = _
        WebDataGrid1.Controls(0).Controls(0).Controls

        Dim btn As Button
        Dim qry = From item As Control In ctls _
            Where item.ID = "ButtonOK" _
        Select item

        btn = qry.ToList()

        Return btn.ClientID

    End Function

这对我不起作用。我试图迭代一个控件集合并返回一个控件ID。我是linq的新手。

谢谢, 〜CK

2 个答案:

答案 0 :(得分:4)

您应该在ButtonOK的父级上使用FindControl方法,而不是使用LINQ。

答案 1 :(得分:1)

我认为您认为只有一个按钮ID为“ButtonOK”的按钮?如果是,则替换

btn = qry.ToList()

btn = qry.Single()

事情会如你所愿。现在,您正在返回一个项目的List<T>,而不是对单个项目的引用。