Форум программистов, компьютерный форум, киберфорум
Наши страницы
C#: Базы данных, ADO.NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
pro1004ok
2 / 2 / 0
Регистрация: 13.11.2008
Сообщений: 177
1

Отображение той или иной DataGridview в зависимости от выбора в TreeView

08.02.2012, 13:59. Просмотров 1065. Ответов 6
Метки нет (Все метки)

Есть у меня на форме элемент TreeView и в нем узлы Node1, Node2 и т.д. Также планирую сделать DataGridview1, DataGridview2 с привязкой к таблицам БД. Но как сделать, чтобы при выборе, например, Node1 отображался DataGridview1, при выборе Node2 отображался DataGridview3 и т.д? Это должно быть в одной форме.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.02.2012, 13:59
Ответы с готовыми решениями:

Как обновить данные той или иной строки ориентируясь по полю
Rows.Add -добавляем строчку в таблицу - как проверить на наличие определенной...

Вывод информации в DataGridView в зависимости от выбора в другом DataGridView - C# Access
В 1м DataGridView У меня предприятия, при выборе какого-то 1 предприятия, во 2й DataGridView...

Вывод информации в DataGridView в зависимости от выбора в другом DataGridView
Прошу прощения сразу же потому что видел много тем похожих, но ответа так и не могу найти. Есть два...

Отображение данных в Label в зависимости от выбора в Combobox
Здравствуйте! У меня такой вопрос: есть БД, в ней таблица со столбцами diametr rezbi d и diametr...

Открытие той или иной формы в зависимости от выбора в DBLookupComboBox
Люди помогите, пожалуйста. Надо построить логику так, чтобы: 1) Есть Forma1 в ней есть...

6
_katon_
386 / 242 / 20
Регистрация: 03.10.2011
Сообщений: 1,003
08.02.2012, 14:23 2
Я так понял, что это такое меню. Нажал в дереве на одну запись увидел соответствующие ее данные в гриде, нажал другую - увидел уже другие данные. Можно на обработчик выбора элемента дерева повесить событие, которое будет создавать объект грида настраивать колонки и загружать данные. При перекрикивании должен будет создаться следующий гирд (это первый подход).
Я бы чтобы упростить себе жизнь использовал бы типизированный датасет. В окне я бы разместил контейнер SplitContainer, который разбил бы окно на две части. Одну часть я бы использовал для дерева, другую для отображения грида.
Затем я бы изначально в окне настроил оба грида (указал бы источник данных и настроил поля) и разместил бы их во вторую половину контейнера. Изначально у обоих гридов установил свойство Visble = false.
При клике по элементу дерева можно очищать ранее использованный грид (точнее таблицу связанную с гридом) и делать видимым другой грид и наполнять его данными.
Вот как-то так!)
1
pro1004ok
2 / 2 / 0
Регистрация: 13.11.2008
Сообщений: 177
08.02.2012, 15:05  [ТС] 3
Вроде всё понятно. А если у меня не два датагрида, а несколько(штук 5), то какой лучше механизм использовать, чтобы это реализовать?
0
_katon_
386 / 242 / 20
Регистрация: 03.10.2011
Сообщений: 1,003
08.02.2012, 15:35 4
Зависит от времени))) Быстро сделать или чтобы быстрее работало (нужна какая-то золотая середина). Если все пять гридов добавить прямо в окошко, то сможешь настроить их в дизайнере, что быстрее чем писать код. Если будешь писать код то убьешь больше времени, так как все равно придется настраивать поля.
Если времени много постарайся динамично создавать объекты грида в зависимости от выбранного узла (меньше занимаемой памяти, меньше размер приложения). Если совсем мало, то лепи 5 гридов. Обычно все мои порывы сделать более изящный вариант, заканчивались менее изящным но зато более быстрым. В любом случае это мой опыт, что в твоем случае лучше делать решай сам.
1
andrew_w2k
326 / 326 / 90
Регистрация: 04.03.2010
Сообщений: 648
08.02.2012, 15:59 5
на мой взгляд: при выборе node - формируй DataTable, затем делай DataBind() у GridView, зачем их плодить по 5 штук, конечно, при большом количестве данных их отображение заставит ждать, можно заюзать ajax и повесить что-то типа loader'a
1
_katon_
386 / 242 / 20
Регистрация: 03.10.2011
Сообщений: 1,003
08.02.2012, 16:17 6
А если в гриде надо настраивать поля? если там 10 полей являющихся вторичным ключом и для них нужно указать тип "DataGridViewComboBoxColumn" либо какой-то другой тип. DataTable не нужно формировать если использовать типизированный датасет (я про это писал). Все упирается во время.
Если динамично создать грид указать ему источник данных и просто разместить на форме, то да такой вариант у меня самого первый в списке (быстрее и эффективнее).
А если тебе надо указывать для каждого колонки отображаемый текс, определять тип поля в гриде и т.д., то без графического интерфейса времени может уйти на порядок больше. andrew_w2k, я не говорю что ты не прав)), просто обозначаю оговорки.
1
pro1004ok
2 / 2 / 0
Регистрация: 13.11.2008
Сообщений: 177
19.02.2012, 22:30  [ТС] 7
А можно ли реальный пример кода по этой теме привести?
0
19.02.2012, 22:30
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.02.2012, 22:30

Создание формы с возможностью выбора отображения той или иной таблицы.
Здравствуйте. Существует несколько(n) таблиц, количество и имя полей в них разные, НО в каждой...

отображение той или иной картинки при нажатом чекбоксе
Подскажите пожалуйста,как сделать так,чтобы при нажатии чекбокса(ов) изображение(в моем случае это...

От чего зависит корректная работа той или иной операционной системы на том или ином оборудовании?
собственно кругозор расширяется, всё выше и шире углубляюсь в системное администрирование, поэтому...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru