我的DataGrid的第一列是ID,也就是数据库中作为标识的那列,所以是不能被编辑的。我把这列设置为不可见。
那么问题就出来了,我在编辑模式下,用原来的取值方法得不到他的值。
原来用的e.Item.Cells[0].Text取不到他的值。
然后发现把这列设置成可见后((TextBox)e.Item.Cells[0].Controls[0]).Text可以取到,但是这列不能被修改啊。
我该怎样在编辑模式下取他的值呢?

解决方案 »

  1.   

    DataGrid 应该是不存在此问题, GridView 存在主键,就考虑使用 DataKey<asp:datagrid DataKeyField="ID" ...
    int id = (int)DataGrid1.DataKeys[e.Item.ItemIndex];
      

  2.   

    foreach (DataGridItem item in DataGrid.Items)
    {
         HiddenField H_ID = (HiddenField)item.FindControl("ID");
    }这样可以吗
      

  3.   

    用设置DataKeyField
    然后用DataKey搞定了 
    DataKeyField这个设置的是主键?只能设置一个老?
      

  4.   

    DataKeyField这个设置的是主键?只能设置一个老?=========DataGrid 只支持一个,ASP.NET 2.0 中的 GridView 可以支持多个DataGrid 要实现多个隐藏值,可以通过隐藏列,或者模板内中嵌入隐藏域控件,然后访问读取控件
      

  5.   

    把你要隐藏的列设为DataKeyField,这样你在后面就可以用到它了