Vb.net 将ActiveFilterString子句添加到DevExpress GridView CustomFilterRow

Vb.net 将ActiveFilterString子句添加到DevExpress GridView CustomFilterRow,vb.net,gridview,devexpress,.net-2.0,Vb.net,Gridview,Devexpress,.net 2.0,我有DevExpressGridView,其中我有一个数据表作为数据源。现在我有一个隐藏列,用于使用CustomFilterRow事件过滤视图。现在的问题是,当用户放入任何过滤器时,它会被忽略,因为e.Handled中的CustomFilterRow事件设置为True。我想要的是也使用用户的过滤器字符串过滤视图,保持我的过滤器处于活动状态,即无论用户提供什么过滤器,它都将始终添加到我最初在CustomFilterRow事件中提供的过滤器算法上 Private Sub GridView_Dept_

我有DevExpress
GridView
,其中我有一个数据表作为数据源。现在我有一个隐藏列,用于使用
CustomFilterRow
事件过滤视图。现在的问题是,当用户放入任何过滤器时,它会被忽略,因为
e.Handled
中的
CustomFilterRow
事件设置为
True
。我想要的是也使用用户的过滤器字符串过滤视图,保持我的过滤器处于活动状态,即无论用户提供什么过滤器,它都将始终添加到我最初在
CustomFilterRow
事件中提供的过滤器算法上

Private Sub GridView_Dept_CustomRowFilter(ByVal sender As Object, ByVal e As DevExpress.XtraGrid.Views.Base.RowFilterEventArgs) Handles GridView_Dept.CustomRowFilter
    If IsLoadComplete = False Then
        Exit Sub
    End If
    Dim view As GridView = CType(sender, GridView)
    Dim dv As DataView = view.DataSource
    If Not IsEqual(dv(e.ListSourceRow).Item("EXUSER"), Me.GridViewUser.GetFocusedRowCellValue("EXUSER")) Then
        e.Visible = False
        e.Handled = True
    End If
End Sub
DevExpress-9.2.Net-2.0 VS-2008


注意-由于公司政策,我不允许升级到更高版本。

刚刚找到答案。如果我将
e.Handled=True
作为事件中的最后一行写入,该行始终被执行,则用户自定义筛选器始终被忽略,但如果我在自定义条件块中写入
e.Handled=True
,则一切正常

因此,在事件参数对象中具有
e.Handled
属性的任何事件,请小心将
e.Handled
属性设置为
True
。您应该始终确保仅在满足的条件覆盖默认功能的情况下,才将
e.Handled
属性设置为
True
。在函数末尾将
e.Handled
属性设置为
True
将始终覆盖默认功能,这可能不是所需的行为