这里用控件的id没用,因为datagrid每一列都有一个叫rescore的textbox,当然不知道是哪个。

解决方案 »

  1.   

    那个EndGive()方法在哪儿触发的啊?
    详细点
      

  2.   

    你取的不对啊!
    这样:h = (TextBox)manager.Cells[0].FindControl("rescore")).Text
      

  3.   


    不好意思,错了!
    这样!
                    

    ((TextBox)manager.Item[0].Cells[i].FindControl("text1")).Text;
    你要取DataGrid的Items里的具体的哪一个cell才能取到
    就是这样!
      

  4.   

    试试h = (TextBox)e.Item.FindControl("rescore")).Text
      

  5.   

    谢谢各位支持,一觉醒来,发现犯了一白痴错误,我的写法是对的
    foreach(DataGridItem i in manager.Items)
    {
    TextBox h;
    h = (TextBox)i.FindControl("rescore");
    Response.Write(h.Text+"<br/>");
    }
    这样写也是对的,不用非要找到cell.我的错误在于pageload的时候没加上!ispostback导致每次点按钮的时候就重新绑定了datagrid,所以datagrid里的textbox的值自然就没了.
    谢谢支持,结了
      

  6.   

    我觉得应该是这样的,你是编辑列,怎敢肯定是Item[0]呢?
    TextBox h=(TextBox)manager.Items.FindControl("rescore");
    Response.Write(h.Text);
    Response.End();
      

  7.   

    呵呵,只是item[0]里肯定会有东西我只是这样来做个实验,当然实际的代码会是一个for循环的.谢谢关注
      

  8.   

    string strH = ((TextBox)manager.Items[0].FindControl("rescore")).Text.ToString();
    Response.Write(strH );
    Response.End();需要确定id存在
      

  9.   

    应该这样
    string strH = ((TextBox)manager.Items.FindControl("rescore")).Text.ToString();
    Response.Write(strH );
    Response.End();
      

  10.   

    ((TextBox)manager.Item[0].Cells[i].FindControl("text1")).Text;