If e.Item.ItemType = ListItemType.Header Then
            Dim txt As TextBox
            txt = e.Item.FindControl("textbox3")
            txt.Text = "as"
        End If

解决方案 »

  1.   

    guoyan19811021(吉祥)  说的对
    通过判断ListItemType可以做更多自由化的东西,msdn上有一个例子
      

  2.   

    Dim item As DataGridItem
            For Each item In DataGrid1.Controls(0).Controls
                If item.ItemType = ListItemType.Header Then
                    Dim txt As TextBox
                    txt = item.FindControl("textbox3")
                    txt.Text = "222"
                End If
            Next
      

  3.   

    用FindControl有时候找不到,可以考虑递归查找子控件:
    VisitSubControls(YourDataGrid);private void VisitSubControls( Control parentCtrl )
    {

    if ( parentCtrl is TextBox && parentCtrl .ID="YourTextBoxID" )
    {
                  TextBox tbx = (TextBox)parentCtrl ;
                  tbx.Text = "aaa";//这就是你要找得那个控件
                  return;
              } if ( !parentCtrl.HasControls() ) return; foreach ( Control ctrl in parentCtrl.Controls )
    {
    VisitSubControls( ctrl );
    }
    }
      

  4.   

    if (e.Item.ItemType == ListItemType.Header)
    TextBox txt = (TextBox)e.Item.FindControl("textbox")
    string TextValue = txt.Text;