首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DataFilter干扰AutoComplete对UltraGrid内部UltraCombo的影响

DataFilter干扰AutoComplete对UltraGrid内部UltraCombo的影响
EN

Stack Overflow用户
提问于 2016-03-03 20:27:57
回答 2查看 756关注 0票数 1

我的UltraCombo设置在UltraGrid中,AutoComplete设置为“建议”。UltraCombo的DisplayMember为"Name“,ValueMember为"ID”。我所发现的是,当我将一个DataFilter附加到UltraCombo (当值为零时,我想使它看起来是空白的),如果它们键入的数字恰好与ID匹配并启动了一个名称,那么它将完成自动完成,但是基础值从未改变。因此不会触发AfterUpdate或CellChange,当您离开单元格时,它会恢复为空白。如何才能让AutoComplete工作,但仍将零值显示为空白?下面是我的代码(注意,如果您注释掉了UltraCombo1.DataFilter设置的行,更新可以正常工作,但您会丢失DataFiltering):

代码语言:javascript
复制
Imports Infragistics.Win.UltraWinGrid
Imports Infragistics.Win

Public Class Form1

    Public Sub New()
        InitializeComponent()
        Dim datatableCombo = New DataTable
        datatableCombo.Columns.Add("ID", GetType(Integer))
        datatableCombo.Columns.Add("Name", GetType(String))
        datatableCombo.Rows.Add({1, "123"})
        datatableCombo.Rows.Add({2, "234"})
        datatableCombo.Rows.Add({3, "456"})

        UltraCombo1.DataFilter = New MyDataFilter()
        UltraCombo1.DataSource = datatableCombo
        UltraCombo1.ValueMember = "ID"
        UltraCombo1.DisplayMember = "Name"

        Dim position As Integer = 0
        UltraCombo1.DisplayLayout.Bands(0).Columns("ID").Hidden = False
        UltraCombo1.DisplayLayout.Bands(0).Columns("ID").Header.VisiblePosition = position
        position += 1
        UltraCombo1.DisplayLayout.Bands(0).Columns("Name").Hidden = False
        UltraCombo1.DisplayLayout.Bands(0).Columns("Name").Header.VisiblePosition = position
        position += 1

        Dim datatableGrid = New DataTable
        datatableGrid.Columns.Add("ID", GetType(Integer))
        datatableGrid.Columns.Add("Name", GetType(String))
        UltraGrid1.DataSource = datatableGrid

        UltraGrid1.DisplayLayout.GroupByBox.Hidden = True
        UltraGrid1.DisplayLayout.Override.RowSelectors = DefaultableBoolean.True
        UltraGrid1.DisplayLayout.Override.AllowAddNew = AllowAddNew.TemplateOnBottom

        UltraGrid1.DisplayLayout.Bands(0).Columns("ID").EditorComponent = UltraCombo1
        UltraGrid1.DisplayLayout.Bands(0).Columns("ID").CellClickAction = CellClickAction.EditAndSelectText
        UltraGrid1.DisplayLayout.Bands(0).Columns("ID").Style = ColumnStyle.DropDownValidate
    End Sub

    Public Class MyDataFilter
        Implements Infragistics.Win.IEditorDataFilter

        Public Function Convert(ByVal convertArgs As Infragistics.Win.EditorDataFilterConvertArgs) As Object Implements Infragistics.Win.IEditorDataFilter.Convert
            ' Shouldn't affect anything?
            convertArgs.Handled = False
            Return Nothing
        End Function
    End Class

End Class
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-03-11 15:08:07

事实证明,这是一个缺陷,在不脆弱性11.2。我不知道他们在什么时候修复了它,但是15.2版没有出现这种情况。

票数 0
EN

Stack Overflow用户

发布于 2016-03-07 17:20:24

您需要将AutoCompleteMode设置为网格列,而不是设置为Ultracombo。当UltraCombo设置为EditorComponent时,网格使用它的编辑器。如果在这种情况下将AutoCompleteMode设置为组合体,则在网格中没有任何效果。如果将AutoCompleteMode设置为网格的列,则也不需要将DataFilter设置为组合体。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35782339

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档