Devexpress查找编辑选择一个填充休息查找

时间:2016-02-04 10:54:23

标签: vb.net autocomplete devexpress xpo gridlookupedit

我正致力于使用xpo集合来从数据库获取和更新数据的程序。我设置了lookupedit以从另一个数据库(国家/地区名称)获取数据我希望在选择国家/地区名称后自动填写另一个lookupedit(国家/地区代码)。

这是XPO集合:

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

这是查找代码:

create procedure GetData (@para nvarchar(100))
as 
begin

declare @sql nvarchar(max)

set @sql = case 
            when @para = 'test'
        then 
            'Select * from TableA A
                join TableB B on A.id = B.ID'
       else -- if @para = 'others' goes into else
            'Select * from TableA A
                join TableB B on A.id = B.ID'
        end

execute (@sql)
end

如何将它们链接起来,以便在选择名称后自动填充ISO2?

由于

2 个答案:

答案 0 :(得分:1)

想出如何做到这一点。

如果其他人想知道,我就这样做了:

 @Override
 public boolean onTouch(View v, MotionEvent motionEvent) {

switch (motionEvent.getAction()) {
    case MotionEvent.ACTION_DOWN:
        mIsScrolling = false;
        mDownX = motionEvent.getX();
        break;
    case MotionEvent.ACTION_MOVE:
        float deltaX = mDownX - motionEvent.getX();
        if ((Math.abs(deltaX) > mSlop)) { // swipe detected
            mIsScrolling = true;
        }
        break;
    case MotionEvent.ACTION_CANCEL:
    case MotionEvent.ACTION_UP:
        if (!mIsScrolling) {
            openNewScreen(v); // this method is used for click listener of the ListView
        }
        break;

}

return false;
 }

答案 1 :(得分:0)

我建议你仔细阅读这个描述大多数情况的DevExpress线程来实现这个功能。

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

  

GridControl,TreeList和VGridControl提供了一个特殊事件   激活单元格编辑器时引发:ShownEditor。这是   用the替换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

有关使用LookupEdit查询绑定XPO对象的更多信息,请查看此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;

希望得到这个帮助。