tb = (TextBox)e.Item.Cells[1].FindControls...试试

解决方案 »

  1.   

    如果是模板列就要用(TextBox)e.Item.FindControl("控件的名称,比如说TextBox1")
      

  2.   

    TextBox tb = (TextBox)e.Item.FindControl("textBoxId");
      

  3.   

    TextBox tb = new TextBox();
    tb = (TextBox)e.Item.Cells[1].Controls[0];
    -------------------------------->
    TextBox tb = (TextBox)e.Item.Cells[1].Controls[0];
      

  4.   

    TextBox tb = new TextBox();
    tb = (TextBox)e.Item.Cells[1].Controls[0];
    -------------------------------->
    TextBox tb = (TextBox)e.Item.FindControl("textBoxId");
      

  5.   

    异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。行 81:  TextBox tb = new TextBox();
    行 81:  tb = (TextBox)e.Item.Cells[1].FindControl("TextBox1");
    行 82:  Lab.Text = tb.Text;    //这一行出错还是有点搞不懂
      

  6.   

    上面都有人告诉你了呀?(TextBox)e.Item.FindControl,用Item,不要用Cells[],去定位,因为你用了模板列了,只能是通过行去找列,不能再定位到多少行,多少列了!
      

  7.   

    public void Update_Onclick(object sender, DataGridCommandEventArgs e)
    {
    TextBox tb = new TextBox();
             //TextBox1为你在Datagrid中定义TextBox的ID号
    tb = (TextBox)e.Item.Cells[1].FindControl("TextBox1");
    Lab.Text = tb.Text.ToString(); 
    }
      

  8.   

    其实我试过很多种方法
    然后我做了个测试:
    TextBox tb = new TextBox();
    tb = (TextBox)e.Item.FindControl("TextBox1");
    if(!(tb == null))
    {
        Lab.Text = "找到";
    }
    else
    {
        Lab.Text = "没有找到";
    }运行的时候,它老是说找不到,不过将
    tb = (TextBox)e.Item.Cells[1].FindControl("TextBox1")改为
    tb = (TextBox)e.Item.Cells[1].Control[1];
    它就可以找到,不过信息老是为空,不知为什么
      

  9.   

    tb = (TextBox)e.Item.Cells[i].Controls[0]; i 应该>2 .因为按钮也算一列  。