Вопрос по cxGrid

ova

Вот сделал я три уровня в cxGrid, все отображается нормально, но хочу скажем во втором уровне по двойному щелчку на сроке вызвать ее на редактирование, для этого нужно считать ключ этой строки. Но почему то не получается. Делаю так
i:=Grid1DBTableView2.DataController.DataSource.DataSet.FIeldByName('ID').AsInteger;
Но в этом коде считывается ID первой строки в списке а не той на которой стоит курсор. Подскажите где собака порылась и как мне определить данные по выделенной строке.
6 ответов

ova

DataController.DataModeController.SyncMode := ?


ova

DataController.DataModeController.SyncMode := ?
False. А что он отвечает,


ova

DataController.DataModeController.SyncMode := ?
Попробовал поставить true, еще хуже стало, теперь я по записям вообще не могу ходить, т.е. выделена всегда первая запись.


ova

Поставил GridMode:=true - заработало, я его раньше отключил уже не помню почему, что-то не устраивало, но сейчас вроде все нормально.


ova

Свойство отвечает за синхронизацию положения курсора и dataseta. Если нет перемещения по записям - значит грид не может их однозначно иддифицировать - KeyField неправилен.


ova

Поставил GridMode:=true - заработало, я его раньше отключил уже не помню почему, что-то не устраивало, но сейчас вроде все нормально.
Уже увидел что мне не понравилось. При GridMode=true при раскрытии узла вываливаются все записи из подчиненной таблицы а не отобранные по ключу (заданы поля KeyFieldNames, MasterKeyFieldNames, DetailKeyFieldNames). Что я делаю не так?