在DataGrid中,存在有编辑、更新、取消的命令按钮列,如何在点击了编辑的按钮列之后来取隐藏列的值,该隐藏列不是DataKeyField列,我使用了TextBox Tb1 = (TextBox)e.Item.Cells[2].Controls[0]来取,但该方法只能取出Visible = true的列的值,请教有什么方法可以取出Visible = false的列的值?

解决方案 »

  1.   

    此方法取值不受 列的visible属性影响,问题可能出在其它地方
      

  2.   

    可以的话就别FALSE了,把这一列的宽度置为0。笨办法,其它的俺也不会
      

  3.   

    我的实际经验和个人观点,要想取隐藏列的值,这一列必须是Bound列,不能是其他的Template列,取的方法是“DataGrid.Items[i].Cells[2].Text”即可。对于隐藏的Template列我市没有取成功过。仅供参考!
      

  4.   

    个人认为取值应该跟visible属性无关啊。
    DataGrid.Items[i].Cells[2].Text  应该可以取到,是否出其他问题了?
      

  5.   

    楼主的意思是Template列visible=false的时候取不出来,而Bound列visible=false这是绝对没问题的,DataGrid.Items[i].Cells[j].Text,数j的时候记住把visible=false的也数上减1即可!
      

  6.   

    我使用DataGrid.Items[i].Cells[j].Text进行取值,在编辑状态下的行,仍然不能取出值,只有那些不在编辑状态下的行才能取出值,请教还有没有什么办法?
      

  7.   

    我是在DataGrid的UpdateCommand事件中来进行取值的,我进行了跟踪,真的取不到值,不骗您!!!
      

  8.   

    用TextBox Tb1 = (TextBox)e.Item.Cells[2].FindControl("控件名") 呢?这样子应该可以把?我的程序都可以
      

  9.   

    不是,写错了,是用TextBox Tb1 = (TextBox)e.Item.Controls[0].FindControl("控件名") ,不好意思
      

  10.   

    birdsmaller(小小鸟),您的这个方法我也实验过了,不信您试试,您把TextBox Tb1 = (TextBox)e.Item.Controls[0].FindControl("控件名")写在DataGrid的UpdateCommand事件中,而且该列是隐藏的,您的这种方法只能针对是可见的列.还有没有其他的方法,请指点.
      

  11.   

    个人建议最好将dataView做为DataGrid的dataSource,取值的时候,直接通过DataView取就可以了.