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

Я работаю над программой, которая использует коллекцию xpo для получения и обновления данных из базы данных. Я настроил lookupedit для получения данных из другой базы данных (название страны). Мне бы хотелось, чтобы другой lookupedit (код страны) автоматически заполнялся после выбора названия страны.

Вот коллекция XPO:

Private Countries As New XPCollection(Of clCountry)(UOW)

и вот код поиска:

CountriesLookupRepo.DataSourceConnect("Name", "Name", Countries)
CountryCodeLookUp.DataSourceConnect("ISO2", "ISO2", Countries)

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

Спасибо

2 ответа

Решение

Разобрался, как это сделать.

Если кому-то интересно, вот как я это сделал:

Dim Country As clCountry = CountriesLookupRepo.GetDataSourceRowByKeyValue(e.Value)
                Apt.CountryCode = Country.ISO2
                Apt.RegionName = Country.Region

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

Как отфильтровать второй столбец LookUp на основе значения первого столбца LookUp

GridControl, TreeList и VGridControl предоставляют специальное событие, которое вызывается при активации редактора ячеек: ShownEditor. Это лучший момент для замены источника данных редактора LookUp коллекцией, отфильтрованной по соответствующему критерию.

пример:

Private Sub gridView1_ShownEditor(ByVal sender As Object, ByVal e As EventArgs)
    Dim view As ColumnView = DirectCast(sender, ColumnView)
    If view.FocusedColumn.FieldName = "CityCode" AndAlso TypeOf view.ActiveEditor Is LookUpEdit Then
        Dim edit As LookUpEdit = CType(view.ActiveEditor, LookUpEdit)
        Dim countryCode As String = CStr(view.GetFocusedRowCellValue("CountryCode"))
        edit.Properties.DataSource = GetFilteredCities(countryCode)
    End If
End Sub

и для получения дополнительной информации, связанной с вашим стремлением связать объекты XPO с LookupEdit, проверьте этот пример KB:

Как: привязать коллекцию XP к LookUp

пример:

XPCollection xpCollectionPerson = new XPCollection(typeof(Person));         
xpCollectionPerson.DisplayableProperties = "Name;Group!Key";
gridControl1.DataSource = xpCollectionPerson;

XPCollection xpCollectionGroup = new XPCollection(typeof(PersonGroup));
RepositoryItemLookUpEdit lookUpRI = new RepositoryItemLookUpEdit();
lookUpRI.DataSource = xpCollectionGroup;
lookUpRI.DisplayMember = "GroupName";
lookUpRI.ValueMember = "Oid";
gridControl1.RepositoryItems.Add(lookUpRI);
// Associate the LookUpEdit editor with the "Group!Key" column. 
(gridControl1.MainView as ColumnView).Columns["Group!Key"].ColumnEdit = lookUpRI;

Надеюсь, это поможет.

Другие вопросы по тегам