2016-03-02 4 views
0

Я использую ADO.NET EF для работы с БД. У меня есть таблица User and Permission, и у меня есть еще одна UserPermissionRelation, которая содержит ссылки между пользователями и отношениями. Ссылка сделана внешним ключом.Как отобразить значение ForeignKey в сетке

UserPermissionRelation таблица, как показано ниже

| ID | UserId | RelationID 
-------------------------------- 
| 1 | 1  | 5 
| 2 | 2  | 7 

Я использую DevExpress GridControl, и я хотел бы перечислить таблицу UserPermissionRelation в сетке, но я хочу перечислить имя пользователя и отношений, а не их идентификаторов.

вот мой код

userPermissionList = MainForm.db.UserPermissionRelation.ToList(); 
gc.DataSource = userPermissionList; 

и вот снимок, который будет более подсказка ...

enter image description here

Как я могу перечислить имена, которые находятся в подсписке в сетке?

ответ

1

1) Создайте объект RepositoryItemLookupEdit внутри GridControl.

2) Затем заполните список RepositoryItemLookupEdit списком пользователей.

var users = MainForm.db.Users.ToList(); 
userRepositoryItemLookupEdit.DataSource = users; 
userRepositoryItemLookupEdit.DisplayMember = nameof(User.Username); 
userRepositoryItemLookupEdit.ValueMember = nameof(User.Id); 
userRepositoryItemLookUpEdit.NullText = ""; 

3) Привязать репозиторийItemLookupEdit к столбцу пользователя.

gridView.Columns["someColumnKey"].ColumnEdit = userRepositoryItemLookupEdit; 

Затем вы можете изменить базовый идентификатор с помощью элемента управления lookup, но вы всегда будете видеть имя пользователя.

+0

Он работает, но он говорит, что «EditValue имеет значение null» в сетке. –

+0

Просто установите свойство userRepositoryItemLookupEdit.NullText в пустую строку или все, что вы хотите отобразить в сетке. Я обновил свой ответ. – Marc

+0

Я не работаю ... –

Смежные вопросы