我用的  DataGrid1.EditItemIndex = e.Item.ItemIndex 这个为什么出错了??
而且DataGrid1.EditItemIndex =-1
明明里边有一条记录啊。请问如何才能得到正确的ID,然后UPDATE这条记录呢??用什么语句啊??

解决方案 »

  1.   

    <datagrid id="dg" datafiled="id"></datagrid>int id = convert.toint(dg.datakeys[e.Item.ItemIndex]);
      

  2.   

    为什么UPDATECOMMAND最后还要把这个值赋成-1呢??为什么当前是-1,执行起来出错?? id = DataGrid1.DataKeys(e.Item.ItemIndex)就是这个语句出错,提示超出范围INDEX注:数据库只有一条记录难道只有一条记录,就会出错吗?
      

  3.   


    <datagrid id="dg" datakeyfiled="id"></datagrid>int id = convert.toint(dg.datakeys[e.Item.ItemIndex]);
      

  4.   

    索引超出范围。必须为非负值并小于集合大小。参数名: index 
    说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.ArgumentOutOfRangeException: 索引超出范围。必须为非负值并小于集合大小。参数名: index源错误: 
    行 188:
    行 189:
    行 190:        id = DataGrid1.DataKeys(e.Item.ItemIndex)
    行 191:
    行 192:
     
    大家来看看出错信息,要求为非负值,但我的是-1,怎么办啊?
      

  5.   

    1 DataKeyFiled
    2 将id带在出发ItemCommand的DataGridCommandEventArgs内
      

  6.   

    if((e.Item.ItemType!=ListItemType.Header)&&(e.Item.ItemType!=ListItemType.Footer))
      

  7.   

    song0320(九纹龙) ( ) 信誉:100  2006-06-08 12:47:00  得分: 0  
     
     
       你没有把ID绑定到Datakey
      
     
    -----------------------------------------------------------------------感谢大家,是这个问题。