Hier hetzelfde. Wat ik wel even wil meegeven dat je even uit moet kijken met de Controller.FocusedRowIndex / DataController.FocusedRowIndex en het sorteren van lijsten zoals een sortorder. Indien je een lijst sorteert dan komt de visual index niet meer overeen met de recordindex in je datacontroller. 0 kan dit net zo goed op visualrecordindex 13 staan. In dat geval zal je Datacontroller.DeleteRecord(value) compleet de mist in gaan. Indien je FocusedRowIndex 0 is en in je Datacontroller is dat index 13, dan zal hij niet je geselecteerde record weggooien, maar het item op index 13. Gebruik in dit geval de RecordIndex propertie.
Code:
LIndex := aGridView.ViewData.Rows[FocusedRowIndex].RecordIndex;
// LIndex kan sorteren dus een andere waarde hebben.
aGridView.DataController.DeleteRecord(LIndex); //<< LIndex kan hier 13 zijn, maar het item staat na sorteren op index 0 in de lijst. DeleteRecord zij nu wel record 13 weggooien op index 0 in je visuele lijst.
Om een lang verhaal kort te maken: Na het sorteren komt de FocusedRowIndex niet meer overeen met de RecordIndex van je Rows. FocusedRowIndex is dus niet hetzelfde item wat in je datacontroller geselecteerd staat. Natuurlijk kun je Datacontroller.DeleteFocosed gebruiken, maar dat gaat (in mijn geval) niet altijd op.
Denk geef het even mee mocht je met het TcxGrid aan de gang gaan.
Bookmarks