jj: doubleclick to confirm, fix duplicate SELECTED column, fix list(str)
This commit is contained in:
parent
73474ade37
commit
7fc347ae05
@ -11,7 +11,7 @@ Public Class Grid
|
|||||||
<Browsable(False)>
|
<Browsable(False)>
|
||||||
Public Property DataSource As DataTable
|
Public Property DataSource As DataTable
|
||||||
<Browsable(False)>
|
<Browsable(False)>
|
||||||
Public Property SelectedValues As New List(Of Object)
|
Public Property SelectedValues As New List(Of String)
|
||||||
|
|
||||||
Private Sub btnOpenForm_Click(sender As Object, e As EventArgs) Handles btnOpenForm.Click
|
Private Sub btnOpenForm_Click(sender As Object, e As EventArgs) Handles btnOpenForm.Click
|
||||||
Dim frm As New frmLookupGrid() With {
|
Dim frm As New frmLookupGrid() With {
|
||||||
|
|||||||
@ -1,3 +1,4 @@
|
|||||||
DevExpress.XtraEditors.ButtonEdit, DevExpress.XtraEditors.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
DevExpress.XtraEditors.GridLookUpEdit, DevExpress.XtraGrid.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||||
DevExpress.XtraEditors.TextEdit, DevExpress.XtraEditors.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
|
||||||
DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||||
|
DevExpress.XtraEditors.TextEdit, DevExpress.XtraEditors.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||||
|
DevExpress.XtraEditors.ButtonEdit, DevExpress.XtraEditors.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||||
|
|||||||
@ -7,11 +7,9 @@ Public Class frmLookupGrid
|
|||||||
Public Property AddNewValues As Boolean
|
Public Property AddNewValues As Boolean
|
||||||
Public Property PreventDuplicates As Boolean
|
Public Property PreventDuplicates As Boolean
|
||||||
Public Property DataSource As DataTable
|
Public Property DataSource As DataTable
|
||||||
Public Property SelectedValues As List(Of Object)
|
Public Property SelectedValues As List(Of String)
|
||||||
|
|
||||||
Private originalValues As List(Of Object)
|
|
||||||
Private dataColumn As Integer
|
Private dataColumn As Integer
|
||||||
|
|
||||||
Private view As GridView
|
Private view As GridView
|
||||||
Private grid As GridControl
|
Private grid As GridControl
|
||||||
|
|
||||||
@ -19,6 +17,22 @@ Public Class frmLookupGrid
|
|||||||
view = viewLookup
|
view = viewLookup
|
||||||
grid = gridLookup
|
grid = gridLookup
|
||||||
|
|
||||||
|
If DataSource Is Nothing Then
|
||||||
|
Exit Sub
|
||||||
|
End If
|
||||||
|
|
||||||
|
If MultiSelect Then
|
||||||
|
If Not DataSource.Columns.Contains("SELECTED") Then
|
||||||
|
Dim selectedColumn = New DataColumn() With {
|
||||||
|
.ColumnName = "SELECTED",
|
||||||
|
.DataType = GetType(Boolean),
|
||||||
|
.DefaultValue = False
|
||||||
|
}
|
||||||
|
DataSource.Columns.Add(selectedColumn)
|
||||||
|
selectedColumn.SetOrdinal(0)
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
|
||||||
' Datasource setzen
|
' Datasource setzen
|
||||||
grid.DataSource = DataSource
|
grid.DataSource = DataSource
|
||||||
|
|
||||||
@ -47,14 +61,10 @@ Public Class frmLookupGrid
|
|||||||
view.OptionsView.NewItemRowPosition = NewItemRowPosition.None
|
view.OptionsView.NewItemRowPosition = NewItemRowPosition.None
|
||||||
End If
|
End If
|
||||||
|
|
||||||
' Wenn Selected Values nicht gesetzt ist, leere Liste anlegen
|
|
||||||
If SelectedValues Is Nothing Then
|
If SelectedValues Is Nothing Then
|
||||||
SelectedValues = New List(Of Object)
|
SelectedValues = New List(Of String)
|
||||||
End If
|
End If
|
||||||
|
|
||||||
' Ursprüngliche Werte zwischenspeichern
|
|
||||||
originalValues = SelectedValues
|
|
||||||
|
|
||||||
' Bereits ausgewählte Werte im grid auswählen
|
' Bereits ausgewählte Werte im grid auswählen
|
||||||
SyncItemsWithView(view)
|
SyncItemsWithView(view)
|
||||||
|
|
||||||
@ -90,7 +100,7 @@ Public Class frmLookupGrid
|
|||||||
view.FindFilterText = String.Empty
|
view.FindFilterText = String.Empty
|
||||||
|
|
||||||
If MultiSelect Then
|
If MultiSelect Then
|
||||||
Dim oValues As New List(Of Object)
|
Dim oValues As New List(Of String)
|
||||||
|
|
||||||
For oIndex = 0 To viewLookup.DataRowCount - 1
|
For oIndex = 0 To viewLookup.DataRowCount - 1
|
||||||
Dim oRow As DataRow = view.GetDataRow(oIndex)
|
Dim oRow As DataRow = view.GetDataRow(oIndex)
|
||||||
@ -111,7 +121,7 @@ Public Class frmLookupGrid
|
|||||||
Else
|
Else
|
||||||
Dim oRowHandle As Integer = view.GetSelectedRows().ToList().FirstOrDefault()
|
Dim oRowHandle As Integer = view.GetSelectedRows().ToList().FirstOrDefault()
|
||||||
Dim oRow As DataRow = view.GetDataRow(oRowHandle)
|
Dim oRow As DataRow = view.GetDataRow(oRowHandle)
|
||||||
Dim oValues As New List(Of Object)
|
Dim oValues As New List(Of String)
|
||||||
|
|
||||||
If oRow IsNot Nothing Then
|
If oRow IsNot Nothing Then
|
||||||
Dim oValue = oRow.Item(0)
|
Dim oValue = oRow.Item(0)
|
||||||
@ -120,6 +130,9 @@ Public Class frmLookupGrid
|
|||||||
|
|
||||||
SelectedValues = oValues
|
SelectedValues = oValues
|
||||||
End If
|
End If
|
||||||
|
|
||||||
|
DialogResult = DialogResult.OK
|
||||||
|
Close()
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub btnClear_Click(sender As Object, e As EventArgs) Handles btnClear.Click
|
Private Sub btnClear_Click(sender As Object, e As EventArgs) Handles btnClear.Click
|
||||||
@ -133,7 +146,6 @@ Public Class frmLookupGrid
|
|||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub viewLookup_CellValueChanging(sender As Object, e As Views.Base.CellValueChangedEventArgs) Handles viewLookup.CellValueChanging
|
Private Sub viewLookup_CellValueChanging(sender As Object, e As Views.Base.CellValueChangedEventArgs) Handles viewLookup.CellValueChanging
|
||||||
|
|
||||||
If e.RowHandle = GridControl.NewItemRowHandle Then
|
If e.RowHandle = GridControl.NewItemRowHandle Then
|
||||||
Exit Sub
|
Exit Sub
|
||||||
End If
|
End If
|
||||||
@ -153,4 +165,27 @@ Public Class frmLookupGrid
|
|||||||
e.Cancel = True
|
e.Cancel = True
|
||||||
End If
|
End If
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
Private Sub viewLookup_RowClick(sender As Object, e As RowClickEventArgs) Handles viewLookup.RowClick
|
||||||
|
' If user double-clicks on a row
|
||||||
|
If e.Clicks = 2 And e.Button = MouseButtons.Left Then
|
||||||
|
' And clicked row is a normal row
|
||||||
|
If e.RowHandle >= 0 Then
|
||||||
|
' If multiselect is true, check the current row
|
||||||
|
' If multiselect is false, select the current row and close the window
|
||||||
|
If MultiSelect = True Then
|
||||||
|
Dim row As DataRow = view.GetDataRow(e.RowHandle)
|
||||||
|
row.Item(0) = Not CBool(row.Item(0))
|
||||||
|
Else
|
||||||
|
Dim row As DataRow = view.GetDataRow(e.RowHandle)
|
||||||
|
Dim value = row.Item(0)
|
||||||
|
|
||||||
|
SelectedValues = New List(Of String) From {value}
|
||||||
|
|
||||||
|
DialogResult = DialogResult.OK
|
||||||
|
Close()
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
End Sub
|
||||||
End Class
|
End Class
|
||||||
Loading…
x
Reference in New Issue
Block a user