如果当前行是Edit状态,那Cell中的第一个控件就是TextBox。
否则,Cell中的第一个控件就是Label。
当然,这都要求你是直接绑定的。如果用了模板列,那又令当别论了。

解决方案 »

  1.   

    datagrid的第一列就是使用的模板列绑定了一id号,现在我似乎明白为什么controls不使用循环了,但得到id号的值是使用的cells(0).controls(1)这个我又不明白了,我觉得应该是cells(0).controls(0)才对,不过事实表明是错误的。
    那按照你说的使用了模板列又是怎样那?我正是使用的模板列(第一列)阿。
      

  2.   

    Dim lbl as Label = CType(e.Item.Cells(0).FindControl("Label1"), Label)
      

  3.   

    恩,对头,谢谢了。
    不过还是麻烦你给我讲下那个ctype(e.item.cells(0).controls(1),label).text,我还是不明白为什么这样取得第一列的label的值。
      

  4.   

    只要是模板列,就是controls[1],不管它是label还是textbox
    不是模板列,也没有处于edit状态,是controls[0],处于edit状态是controls[1]
      

  5.   

    唉,谢谢了,妈的弄得我都烦死了。
    不是模板列处于edit状态是controls(1)?
    那上面的ctype(e.item.cells(i).controls(0),textbox).text都是处于edit状态的,不全都错了阿,呵呵。
      

  6.   

    非模板列中,如果处于Edit状态,那Controls[0]是TextBox。如果不是Edit状态,那Controls[0]是Label。
      

  7.   

    错了,非模板列应都是controls[0]
      

  8.   

    搞定了,谢谢两位兄台,icyer的意思我也明白了,呵呵,谢谢