2009-06-29 12 views
1
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 

これは私のためには機能しません。私は、コントロールコレクションを繰り返し、1つのコントロールIDを返そうとしています。私はlinqの初心者です。Linqがコントロールコレクションを反復する

おかげで、 〜ckを

+0

エラーが発生しますか?もしそうなら、それを投稿できますか? – shahkalpesh

答えて

1

は、私はあなたが「ButtonOK」のボタンIDを有する唯一のボタンがあると思うと仮定しますか?もしそうなら、あなたが期待する方法になります

btn = qry.Single() 

との事で

btn = qry.ToList() 

を交換してください。今は、1つのアイテムの参照ではなく、1つのアイテムのList<T>を返しています。

+0

ありがとうございます! – Hcabnettek

4

LINQを使用するのではなく、ButtonOKの親に対してFindControlメソッドを使用するだけです。