我想在dxdbgrid中拖坠一条记录到来改变该记录相对于其他记录的顺序,有一个字段是专门记录顺序号的 (sequence),
我在 onDragDrop 事件中语句如下
//------------------------------------
  with dxDBGrid1 do
  begin
      DragNode.MoveTo(FocusedNode, natlInsert);      dxDBGrid1.Refresh;
      SortField;//根据当前dxdbgrid的相对位置,改变数据集中记录的sequence拖动的字段的值
  end;
//------------------------------------
SortField函数如下
  with dxDBGrid1 do
  begin
    for I := 0 to Count - 1 do
    begin
      if UseBooks then
        Items[I].Focused := True;      with PrimarySortDm.adsPrimarySort do
      begin
        GotoBook(FocusedNode.Data);        if not (State in [dsInsert, dsEdit]) then
          Edit;
        FieldByName('sequence').AsInteger := I + 1;
      end;
    end;
  end;
  dxDBGrid1.Refresh;但是我拖动记录的时候sequence字段值老是有重复的,并没有象我想的那样按顺序排列。如果我单独运行SortField函数的话,sequence字段的值就是正确的,没有任何问题,我怀疑问题出在node上,但是不太清楚。