Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> DataGrid, отображение подчинения... 
:(
    Опции темы
Hidrag
Дата 31.10.2005, 11:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 877
Регистрация: 9.4.2005
Где: JDK

Репутация: 1
Всего: 25



При написании программы на Delphi при исрльзовании DBGrid можно было кликнуть мышью на записи и в подчиненной таблице (отображении в другой DBGrid) автомиатически появлялись подчиненные записи, а в C#- овском dataGrid такое не происходит, но можно перейти на подчиненные записи в той же dataGrid. Можно ли как нить настроить это дело чтобы было как в Delphi'ском DBGrid? smile


--------------------
user posted image
PM WWW ICQ   Вверх
Дрон
Дата 31.10.2005, 11:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Java-ненавистник :)
****


Профиль
Группа: Участник Клуба
Сообщений: 3179
Регистрация: 29.12.2002
Где: Санкт-Петербург

Репутация: 5
Всего: 93



Цитата(Hidrag @ 31.10.2005, 12:41)
Можно ли как нить настроить это дело чтобы было как в Delphi'ском DBGrid?

ИМХО просто настройкой -- нельзя.

Нужно создать потомок DataGridColumnStyle и в нём вручную реализовать такую фичу -- делается это довольно легко.


--------------------
Да. Именно так.
PM   Вверх
Hidrag
Дата 31.10.2005, 14:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 877
Регистрация: 9.4.2005
Где: JDK

Репутация: 1
Всего: 25



Жаль что просто настроить нелья, я сделал через DataView но как то гиморно получилось, да и с большим числом записей, чувствую тормозить будет. Если делается легко через DataGridColumnStyle может подскажешь как?:)


--------------------
user posted image
PM WWW ICQ   Вверх
Papirus
Дата 1.11.2005, 10:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 298
Регистрация: 19.4.2005
Где: Санкт-Петербург

Репутация: нет
Всего: 1



Т.е. надо тянуть с сервака подчиненные записи?
Тогда настрой SelectComand адаптера подчиненной таблицы - пропиши параметры: поля главной, как условие отбора.
PM MAIL ICQ   Вверх
Hidrag
Дата 1.11.2005, 10:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 877
Регистрация: 9.4.2005
Где: JDK

Репутация: 1
Всего: 25



Да, DataSet заполняется во время работы приложения из аксесовской базы, потом эти данные нужно отобразить в двух dataGrid, DataSet состоит из двух таблиц родительской и подчиненной вродительской есть столбец ID в подчиненной ID_P по которой и происходит подчинение в DataRelation. Вот мне и нужно кликнув по записи в DataGrid родительской таблице чтобы в подчиненной сразу отобразились все полчиненные записи, и как в таком случае когда dataGrid получает данные во время работы приложения сделать некоторые столбцы невидимыми а другим присвоить нормальные имена а не имена таблиц в базе?


--------------------
user posted image
PM WWW ICQ   Вверх
Papirus
Дата 1.11.2005, 11:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 298
Регистрация: 19.4.2005
Где: Санкт-Петербург

Репутация: нет
Всего: 1



Цитата(Papirus @ 1.11.2005, 10:08)
Т.е. надо тянуть с сервака подчиненные записи?

Все-таки наоборот - ВСЕ данные уже есть в таблицах датасета? И даже установлены связи! А гридов два? Тогда два пути
1. (опробованный) отлавливать событие перехода на следующую запись в главном гриде (я делаю через CurrencyManager.Changed) и устанавливать DefaultView.RowFilter = "[строка фильтра]"

Код

tblCustomers,DefaultView.RowFilter = "Country = 'Spain'";
gridCustomers.DataSource = tblCustomers;

2. (по книге Д.Сеппа)
"Метод GetChildRows объекта DataRow
Поиск связанных с родительской записью дочерних записей в другом объекте
DataTable — очень простая задача. Для этого достаточно вызвать метод GetCbudRows
нужного объекта DataRow и передать ему имя объекта DataRelation, определяю-
щего отношение между объектами DataTable. Вместо имени можно также пере-
дать сам объект DataRelation. Метод GetChildRows возвращает связанные данные в
виде массива объектов DataRoiv.
Следующий фрагмент кода вызывает метод GetChildRows и просматривает воз-
вращаемые им данные;
Visual Basic .NET
'Просматриваем записи о клиентах
Din rowCustomer, rowOrder As DataRow
For Each rowCustomer In ds.Tables("Customers").Rows
Console, WriteLine(rowCustomer("CustomerID") & " - " & _
rowCustomer("CompanyName"))
'Просматриваем заказы, размешенные этими клиентами
For Each rowQrder In rowCustomer. GetChildRowsC'fielationName")
Console. WriteLine(vbTab & rowOrder("Order!D") & " - " * _
rowOrder("OrderDate"»
Next rowOrder
Next rowCustomer
Visual C# .NET
//Просматриваем записи о клиентах
foreach (DataRow rowCustomer in ds,Tables["Customers"].Rows)
{
Console. WriteLine(rowCustomer["CustomerID"] + " - " +
rowCustomer [ "CompanyName" ]);
//Просматриваем заказы, размещенные этими клиентами
foreach (DataRow rowOrder in rowCustomer. GetChildRowsC'RelationName"))
Console. WriteLine("\t" + rowOrder["OrderID"] + " - " +
rowO rde r [ " 0 rde rDate " ] ) ;}
Метод GetParentRow объекта DataRow
Объект DataRelation позволяет перемещаться по иерархии не только вниз, но и
вверх. У объекта DataRow есть метод GetParentRoiv, при помощи которого удается
найти родительскую запись дочерней записи на основании определенного в объек-
те DataSet объекта DataRelation. Как и метод GetChildRows, GetParentRow принимает
нужный объект DataRelation или строку с его именем:

PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
stab
mr.DUDA
Exception

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, stab, mr.DUDA, Exception.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Базы данных под .NET | Следующая тема »


 




[ Время генерации скрипта: 0.0688 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.