在Cells[0]列的编辑列中只有一个TextBox
但是我在断点以后e.Item.Cells[0].Controls[0]并不是得到的TextBox
而且Controls有五个控件,如下:
1--> Literal
2--> TextBox
3--> Literal
4--> null
5--> null
为什么会这样?????

解决方案 »

  1.   

    e.Item.Cells[0].FindControl("textbox1")
      

  2.   

    e.Item.Cells[0].FindControl("textbox1"),Literal表示文本
      

  3.   

    晕.我是说为什么.NET会在里面加入两个Literal控件将TextBox包括....二位说的FindControl和Literal是文本我当然知道......
      

  4.   

    而且再说了:
    e.Item.Cells[0].FindControl("textbox1")
    我不给这个TextBox ID号那你Find什么.....
      

  5.   

    改成模版列
    e.Item.Cells[0].Controls[1]就可以得到TextBox
      

  6.   

    e.Item.Cells[0].Controls[1]就可以得到TextBox
    ============================================在任何情况下都会有Literal  TextBox Literal吗?也就是说,任何情况下TextBox的位置都是1吗?
      

  7.   

    不为什么,追加一些控件是模板的权利。你应该使用 e.Item.FindControl 来查找你的TextBox。注意, Item后边不用加上Controls,这可以隐藏你的TextBox的单元格位置,也说明不论你的TextBox放在哪一个单元格它的ID都不允许重复。
      

  8.   

    不为什么,追加一些控件是模板的权利。你应该使用 e.Item.FindControl 来查找你的TextBox。注意, Item后边不用加上Controls,这可以隐藏你的TextBox的单元格位置,也说明不论你的TextBox放在哪一个单元格它的ID都不允许重复。
      
    ======================================================================================
    前提:我的控件没有ID.
      

  9.   

    ((textbox)e.item.cell[0].control[0]=========================================
    呵呵,我就是不明白那两个Literal控件是不是永远都会有,不然我就可以用Controls[1]了,如果不确定,那用1会溢出.