В моем гриде есть 2 уровня, у каждого свое представление.Уровни связаны master-detail связью. Во втором уровне разрешен MultiSelect. Мне непонятно:
1. Почему грид разрешает выбирать строки одновременно из двух представлений одного (второго) уровня.
2. Почему <Представление второго уровня>.Controller.SelectedRecordCount = 0 в то время как там выбраны строки.
Спасибо.
Здравствуйте, delphinchik, Вы писали:
D>В моем гриде есть 2 уровня, у каждого свое представление.Уровни связаны master-detail связью. Во втором уровне разрешен MultiSelect. Мне непонятно:
D>1. Почему грид разрешает выбирать строки одновременно из двух представлений одного (второго) уровня.
D>2. Почему <Представление второго уровня>.Controller.SelectedRecordCount = 0 в то время как там выбраны строки.
D>
D>Спасибо.
1. Так он реализован, и разрешает выбирать, т.к. это один набор данных.
2. Они называют каждое такое представление клонами (Clones). Каждый клон это копия шаблона со своим контроллером данных.
Добраться до него можно
TcxGridTableView.DataController.GetDetailDataController(I, 0)
Здравствуйте, iac, Вы писали:
iac>1. Так он реализован, и разрешает выбирать, т.к. это один набор данных.
iac>2. Они называют каждое такое представление клонами (Clones). Каждый клон это копия шаблона со своим контроллером данных.
iac>Добраться до него можно
iac>iac>TcxGridTableView.DataController.GetDetailDataController(I, 0)
iac>
Да, спасибо, разобрался.
1. Можно обрабатывать TcxGrid.OnFocusedViewChanged
2. TcxGridTableView.Clones[i] — а это вроде до самого клона-представления.
Кстати, еще вопросик. Набор данных дочернего представления может изменяться, в этом случае я просто делаю рефреш датасета чтобы отобразить изменения. В принципе все работает, меня только не устраивает что при рефреше "схлопываются" все дочерние представления. То есть приходится их сново разворачивать руками. В принципе можно запоминать до рефреша те записи родительского представления у кого Expanded = True а после рефреша разворачивать их. Но что то не нравится мне такой подход, может есть у грида похожее свойство? Спасибо.
Вроде нашел :
DataController.Options := DataController.Options + [dcoSaveExpanding];
Но все равно не работает

.
Здравствуйте, delphinchik, Вы писали:
D>Вроде нашел :
D>DataController.Options := DataController.Options + [dcoSaveExpanding];
D>Но все равно не работает
.
И кстати, еще воспросик : как получить из записи master-view ссылку на соответствующий ему detailview? Спасибо.