2 Commits

Author SHA1 Message Date
Jonathan Jenne
afca91ad19 LookupGrid: Version 2.4.0.0 2021-03-30 11:41:49 +02:00
Jonathan Jenne
f3f1925634 LookupGrid: Filter datasource in popup according to selected values 2021-03-30 11:41:02 +02:00
3 changed files with 24 additions and 3 deletions

View File

@@ -8,6 +8,8 @@ Imports DevExpress.XtraEditors.ViewInfo
Imports DevExpress.XtraEditors.Drawing
Imports DevExpress.Accessibility
Imports DevExpress.XtraEditors.Controls
Imports DevExpress.XtraGrid.Views.Base
Imports DevExpress.XtraGrid.Columns
<ToolboxItem(True)>
Public Class LookupControl3
@@ -50,11 +52,12 @@ Public Class RepositoryItemLookupControl3
Private Const TAG_DROPDOWN = "openDropdown"
Private Const TAG_BUTTON_LOOKUP_FORM = "openLookupForm"
Public Const CustomEditName As String = "LookupControl3"
Private _R As Resources.ResourceManager = My.Resources.Strings.ResourceManager
Private _SelectedValues As New List(Of String)
Private _MultiSelect As Boolean = False
Private _ReadOnly As Boolean = False
Public Const CustomEditName As String = "LookupControl3"
Public Property AllowAddNewValues As Boolean
Public Property PreventDuplicates As Boolean
@@ -227,6 +230,22 @@ Public Class RepositoryItemLookupControl3
End Try
End Sub
Private Shadows Sub Popup(sender As LookupControl3, e As EventArgs) Handles Me.BeforePopup
Dim oView As ColumnView = sender.Properties.View
If DataSource IsNot Nothing AndAlso DataSource.Columns.Count > 0 Then
Dim oFirstColumn As String = DataSource.Columns.Item(0).ColumnName
Dim oWrapped = SelectedValues.Select(Function(v As String)
Return $"'{v}'"
End Function).ToArray()
Dim oValueString As String = String.Join(",", oWrapped)
Dim oCriterium As String = $"[{oFirstColumn}] IN ({oValueString})"
View.ActiveFilterCriteria = DevExpress.Data.Filtering.CriteriaOperator.Parse(oCriterium)
View.OptionsView.ShowFilterPanelMode = ShowFilterPanelMode.Never
End If
End Sub
Public Sub HandleQueryPopup(sender As Object, e As CancelEventArgs) Handles Me.QueryPopUp
If MultiSelect = False Then
e.Cancel = True

View File

@@ -31,5 +31,5 @@ Imports System.Runtime.InteropServices
' übernehmen, indem Sie "*" eingeben:
' <Assembly: AssemblyVersion("1.0.*")>
<Assembly: AssemblyVersion("2.3.3.0")>
<Assembly: AssemblyFileVersion("2.3.3.0")>
<Assembly: AssemblyVersion("2.4.0.0")>
<Assembly: AssemblyFileVersion("2.4.0.0")>

View File

@@ -21,6 +21,8 @@ Public Class frmLookup
LookupControl31.Properties.DataSource = oTable
LookupControl32.Properties.MultiSelect = True
LookupControl32.Properties.DisplayMember = "Col1"
LookupControl32.Properties.ValueMember = "Col1"
LookupControl32.Properties.DataSource = oTable
End Sub