![]() |
|
Модераторы: gambit |
![]()
|
|
| Alexb11 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 19.4.2007 Репутация: нет Всего: нет |
Имеется форма. На ней два грида. Нужно чтобы при перемещении по оному из них, происходило перемещение по соответствующим записям в другом.
Два грида связаны со связанными таблицами.("Один ко многим") |
|||
|
||||
| Veitmen |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 288 Регистрация: 10.11.2006 Где: СПБ Репутация: нет Всего: 4 |
Реализовать можно многимим путями. Но в первую очередь к гридам привяжи дата биндинг. У дата биндинга укажи нужный тебе дасурс.
Дьше смотрим как тебе будет удобнее. напрмер ты передавал Table как дата сурс,то делаем так: У дата биндинга при выборе записи текущая позиция хранится в DataBinding.Current. ТАм через приведение типа ты получаешь именно тот тип который тебе нужен. Пример для датасурса Table в котором строки DataRow:
Вот у тебя теперь есть выбранный объект. Загрузить теперь данные в друго грид не сложно. Надо передать второму гриду, нужный датасурс. Как получить датасурс? Да хоть как. Например можно у полученного DataRow взять все чайлдовские или парентовские записи, через методы GetChildRows, GetParentRows. Они перегружены 4 рааз кажется. Но всегда тебе надо указывать какой DataRelation тебе надо использовать для получения связанных записей. Можно передать твой DataRow в твои методы, где у тебя вернется список записей по этому DAtaRow. В общем тут как тебе удобнее. |
|||
|
||||
| akizelokro |
|
|||
![]() Крокодил ![]() ![]() Профиль Группа: Участник Сообщений: 761 Регистрация: 30.7.2007 Репутация: нет Всего: 5 |
Во втором гриде просто выставляешь фильтр по значению ключа в выбранной строке. Это используется, если ты хочешь отобразить дочерние записи. Достаточно просто.
Если же ты хочешь добиться перемещения во второй гриде по какому-то хитрому критерию исходя из выбранной строки в первом и чтобы при этом записи в датагриде не менялись, то это придется ручками кодить поиск. -------------------- a = a + b; b = a - b; a = a - b; |
|||
|
||||
| Любитель |
|
|||
|
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 1 Всего: 92 |
А что за "соответствующие записи"? Если речь про Master/Detail - то достаточно для detail-грида датасорсом поставить релейшен между таблицами. Если в дизайнере обычно датасорсом ставится таблица или биндинг-сорс от мастер-грида, а дата-мембером - имя релейшена. |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, stab, mr.DUDA, Exception. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Базы данных под .NET | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |