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)>
|
||||
Public Property DataSource As DataTable
|
||||
<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
|
||||
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.TextEdit, 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.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 PreventDuplicates As Boolean
|
||||
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 view As GridView
|
||||
Private grid As GridControl
|
||||
|
||||
@ -19,6 +17,22 @@ Public Class frmLookupGrid
|
||||
view = viewLookup
|
||||
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
|
||||
grid.DataSource = DataSource
|
||||
|
||||
@ -47,14 +61,10 @@ Public Class frmLookupGrid
|
||||
view.OptionsView.NewItemRowPosition = NewItemRowPosition.None
|
||||
End If
|
||||
|
||||
' Wenn Selected Values nicht gesetzt ist, leere Liste anlegen
|
||||
If SelectedValues Is Nothing Then
|
||||
SelectedValues = New List(Of Object)
|
||||
SelectedValues = New List(Of String)
|
||||
End If
|
||||
|
||||
' Ursprüngliche Werte zwischenspeichern
|
||||
originalValues = SelectedValues
|
||||
|
||||
' Bereits ausgewählte Werte im grid auswählen
|
||||
SyncItemsWithView(view)
|
||||
|
||||
@ -90,7 +100,7 @@ Public Class frmLookupGrid
|
||||
view.FindFilterText = String.Empty
|
||||
|
||||
If MultiSelect Then
|
||||
Dim oValues As New List(Of Object)
|
||||
Dim oValues As New List(Of String)
|
||||
|
||||
For oIndex = 0 To viewLookup.DataRowCount - 1
|
||||
Dim oRow As DataRow = view.GetDataRow(oIndex)
|
||||
@ -111,7 +121,7 @@ Public Class frmLookupGrid
|
||||
Else
|
||||
Dim oRowHandle As Integer = view.GetSelectedRows().ToList().FirstOrDefault()
|
||||
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
|
||||
Dim oValue = oRow.Item(0)
|
||||
@ -120,6 +130,9 @@ Public Class frmLookupGrid
|
||||
|
||||
SelectedValues = oValues
|
||||
End If
|
||||
|
||||
DialogResult = DialogResult.OK
|
||||
Close()
|
||||
End Sub
|
||||
|
||||
Private Sub btnClear_Click(sender As Object, e As EventArgs) Handles btnClear.Click
|
||||
@ -133,7 +146,6 @@ Public Class frmLookupGrid
|
||||
End Sub
|
||||
|
||||
Private Sub viewLookup_CellValueChanging(sender As Object, e As Views.Base.CellValueChangedEventArgs) Handles viewLookup.CellValueChanging
|
||||
|
||||
If e.RowHandle = GridControl.NewItemRowHandle Then
|
||||
Exit Sub
|
||||
End If
|
||||
@ -153,4 +165,27 @@ Public Class frmLookupGrid
|
||||
e.Cancel = True
|
||||
End If
|
||||
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
|
||||
Loading…
x
Reference in New Issue
Block a user