vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
TOP-Angebot: 17 bzw. 24 Entwickler-Vollversionen zum unschlagbaren Preis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Re: ComboBox Filtern beim aufklappen 
Autor: Manfred X
Datum: 06.03.11 06:01

Hallo Alex1985!

Ich unterstelle im Folgenden, dass das Markieren
der Datensätze in der DataTable durch eine
boolsche DataTable-Spalte erfolgt.

Du benötigst zwei DataViews, die in den
DropDown-Ereignissen der Combobox ausgewechselt
werden.

Dabei ist lediglich zu beachten, dass der
gewählte Text in der Combobox beim Wechsel des
DataView separat übertragen werden muss.
dv_all --> alle nicht "virtuell gelöschten" Datensätze
dv_total --> alle physikalisch vorhandenen Datensätze

Etwa so:
Public Class frmComboJoke
 
  Dim WithEvents cbo As New ComboBox _
    With {.Parent = Me, .Top = 20, .Left = 20, .Width = 200}
  Dim dt As New DataTable
  Dim dv_total, dv_all As DataView
 
  Private Sub frmComboFake_Load(ByVal sender As System.Object, _
                      ByVal e As System.EventArgs) Handles MyBase.Load
 
    'Testdaten erstellen
    dt.Columns.Add("Nicht löschen", GetType(String))
    dt.Columns.Add("Gelöscht", GetType(Boolean))
    For i As Integer = 0 To 9
       If i Mod 2 = 0 Then
          dt.Rows.Add("Nummer " & CStr(i), False)
       Else
          dt.Rows.Add("Nummer " & CStr(i), True)
       End If
    Next i
    dt.AcceptChanges()
 
    'Zwei Dataviews erstellen
    dv_all = New DataView _
    (dt, "Gelöscht = false", "", DataViewRowState.OriginalRows)
    dv_total = New DataView(dt)
 
    'anzuzeigende Spalte der Datatable auf Combo zuweisen
    cbo.DisplayMember = "Nicht löschen"
  End Sub
 
  Private Sub DropDown(ByVal sender As Object, _
     ByVal e As System.EventArgs) Handles cbo.DropDown
     'Dropdown wird geöffnet - an View für Nicht-Gelöscht binden 
     cbo.DataSource = dv_all
  End Sub
 
  Private Sub DropDownClosed(ByVal sender As Object, _
                  ByVal e As System.EventArgs) Handles cbo.DropDownClosed
     With cbo
       'Dropdown wird geschlossen - gewählten Text notieren
       Dim text As String = _
           CStr(CType(cbo.SelectedItem, DataRowView).Item("Nicht löschen"))
       'Combobox an alle Sätze binden und gewählten Text eintragen
       .DataSource = dv_total : .Text = text
     End With
  End Sub
End Class
MfG
Manfred
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
ComboBox Filtern beim aufklappen2.815alex198505.03.11 19:41
Re: ComboBox Filtern beim aufklappen1.819ModeratorFZelle05.03.11 22:25
Re: ComboBox Filtern beim aufklappen1.740Manfred X06.03.11 06:01
Re: ComboBox Filtern beim aufklappen1.687alex198506.03.11 15:51
Re: ComboBox Filtern beim aufklappen1.686Manfred X06.03.11 17:13
Re: ComboBox Filtern beim aufklappen1.597ModeratorFZelle06.03.11 18:48
Re: ComboBox Filtern beim aufklappen1.608ModeratorDaveS07.03.11 15:42
Re: ComboBox Filtern beim aufklappen1.575alex198508.03.11 09:38
Re: ComboBox Filtern beim aufklappen1.594Manfred X08.03.11 11:15
Re: ComboBox Filtern beim aufklappen1.730ModeratorFZelle08.03.11 12:51
Re: ComboBox Filtern beim aufklappen1.614Manfred X08.03.11 13:34
Re: ComboBox Filtern beim aufklappen1.612ModeratorFZelle08.03.11 14:29
Re: ComboBox Filtern beim aufklappen1.606Manfred X08.03.11 14:50
Re: ComboBox Filtern beim aufklappen1.588ModeratorFZelle08.03.11 19:17
Re: ComboBox Filtern beim aufklappen1.666alex198508.03.11 17:19

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel