这样写试试:
DataGrid1.DataKeys[(int)e.Item.ItemIndex]

解决方案 »

  1.   

    如果id字段是自动编号,怎么取到值?
    用 DataGrid1.DataKeys[(int)e.Item.ItemIndex]  好像不行。哈哈,借楼主宝地一用。
      

  2.   

    也可以这样取假如主键在第一列:
    (int)e.Item.Cells[0].Text
      

  3.   

    不对,不是DataKeys的参数问题,而是我的程序执行完DataKeyField="ID"后,DataKeys.Count还是为0,所以就出现了那个问题,不知道有哪位高手遇到过,谢谢
      

  4.   

    肯定会出错的,当DataGrid绑定时系统默认DataGrid的头也算一行,它的ItemIndex为-1,所以你要从ItemIndex为0时取值,也就是从你的数据开始取
      

  5.   

    如果没有数据,即Count还是等于0,其实系统中DataGrid已经有一行了就是他的头,且ItemIndex为-1
      

  6.   

    代码框在
    if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
    里面