Records jump around in grid when editing in code.

Can you tell me why this is happening?  I have the following code in the DBAdvgrid.checkboxclick - so if the state if the box is true the following should update one field in that records row.
The problem happens whe nthe dbadvgrid1.endupdate is called.
The records move around in the grid to a different order, wrong rows become checked.  I have now realize the checking of the row is not useful at all because it does not stay with the dataset record when you scroll, so there is no point to it.  But the records resorting on the endupdate i do not understand.

dbadvgrid1.BeginUpdate;
          olistclientdataset.DisableControls;
          if state = true then
            begin
              //showmessage('checked');
              //showmessage(olistclientdataset.FieldByName('id').AsString);

              olistclientdataset.Edit;
              olistclientdataset.FieldByName('status').AsString := 'OACTIVE';
              olistclientdataset.Post;

              //dbadvgrid1.Cells[20,arow] := 'OACTIVE';

            end else
            begin
              //showmessage('un-checked');
              //showmessage(olistclientdataset.FieldByName('id').AsString);

              olistclientdataset.Edit;
              olistclientdataset.FieldByName('status').AsString := 'NOT ORDERED';
              olistclientdataset.Post;

              //dbadvgrid1.Cells[20,arow] := 'NOT ORDERED';

            end;
          olistclientdataset.EnableControls;
          dbadvgrid1.EndUpdate;

What are settings for 
DBAdvGrid.DataSetType and DBAdvGrid.PageMode?

Did you try to change these settings?

DataSetType is set to dtNonSequenced and DataSetTypeAuto is set to True.

PageMode is set to True.

I seem to have gotten the resorting and jumping stopped by changing the code and getting rid of the checkbox column entirely.  I put this in the onclickcell event instead and it is working ok, except when clicking on row to "select" it and change the record, the grid still moves like some sort of auto scrolling is in effect. Clicking on a row that is more than half way down the grid makes the grid scroll up and the caret changes position to a different record.  Even though the row i clicked on gets the code executed and the data edited.  Very strange behavior.