Скрытие TcxGridLevel в TCXGrid в зависимости от значений основной записи - PullRequest
1 голос
/ 31 мая 2011

У меня есть TcxGrid, который состоит из основного TcxGridLevel и 2 дочерних TcxGridLevels (каждый из которых использует TcxGridDBTableView).Я хотел бы скрыть один из дочерних уровней в зависимости от значения значений записи основного уровня.Как мне это сделать?

1 Ответ

3 голосов
/ 01 июня 2011

Вот ссылка на DevExpress, описывающая, что вы хотите:

https://www.devexpress.com/Support/Center/Question/Details/Q96738

Но, на мой взгляд, у этого есть некоторые недостатки.Сначала это довольно медленно с большими наборами данных.Во-вторых, возникает «мерцание», когда ваш мастер-уровень часто меняется и сетка должна быть перерисована.Возможно, можно установить фильтр для вашего набора данных деталей, чтобы детали были «пустыми», когда ваш nmaster имеет правильное условие.В TcxGrid есть свойство, позволяющее автоматически скрывать пустые вкладки сведений.

В некотором смысле вне контекста, но в случае, если ссылка снова отключится:

1) Как я могувызвать Level3 OnGetGridView, поскольку представление уровня 3 не изменилось, как я ожидал

Событие OnGetGridView вызывается только один раз, когда деталь впервые раскрывается.После того, как обработчик события был выполнен, указанный клон GridView создается и кэшируется, чтобы событие не сработало при следующем расширении той же основной записи.Если вам нужно, чтобы событие было вызвано позднее, вы можете очистить все подробные клоны, вызвав метод ClearDetails основного метода DataController или методы ClearDetailLinkObject.

Вы можете найти эту информацию в разделе «TcxGridLevel.OnGetGridView» документации ExpressQuantumGrid..

2) Я также изменяю заголовки Level2 и Level3 для каждого отображаемого им Gridview, но изменение происходит не автоматически, иногда требуется подробное представление и снова открывать, чтобы изменить подпись.

Если мы не ошибаемся, вы изменяете заголовок уровня в его обработчике события OnGetGridView.Если это так, новая подпись не применяется немедленно, потому что рисование соответствующего элемента не завершено.В качестве обходного пути вы можете выполнить «отложенную» операцию, опубликовав собственное сообщение.Я приложил пример проекта, чтобы проиллюстрировать этот подход в действии.Надеемся, что он будет служить вашим потребностям, и его адаптация не будет проблемой.

...