2016-02-04 4 views
1

Я работаю над программой, которая использует коллекцию xpo для получения и обновления данных из базы данных и в базу данных. Я настроил lookupedit для получения данных из другой базы данных (название страны). Я бы хотел, чтобы другой lookupedit (код страны) был заполнен автоматически после выбора имени страны.Devexpress lookup edit select one fill in rest looks

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

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

и здесь поиск код:

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

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

Благодаря

ответ

1

Выяснено, как это сделать.

В случае, если кто-то будет интересно, это то, как я это сделал:

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

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

How to filter a second LookUp column based on a first LookUp column's value

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 пример:

How to: Bind an XPCollection to a 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; 

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