vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Zippen wie die Profis!  
 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: Datensätze im DataGridView verschieben / tauschen 
Autor: Manfred X
Datum: 11.01.14 18:12

Das mit dem Identisch bezweifle ich.
Ansonsten: Das klappt doch.
Du mußt beachten, daß unterschiedlich sortiert wird.
Im Beispiel werden in der Sortier-Spalte keine Werte geändert.
Public Class frmViews
 
    Dim dt As New DataTable
    Dim bs As New BindingSource
    Dim dgv As New DataGridView With {.Parent = Me, .DataSource = bs}
 
    Dim WithEvents btnTausch As New Button With _
        {.Parent = Me, .Text = "Tauschen", .Top = 250}
 
    Private Sub frmViews_Load(sender As System.Object, _
        e As System.EventArgs) Handles MyBase.Load
 
        dt.Columns.Add("Pos", GetType(Integer))
        dt.Columns.Add("Feld", GetType(String))
 
        dt.Rows.Add(10, "Butter")
        dt.Rows.Add(20, "Bier")
        dt.Rows.Add(30, "Gans")
        dt.Rows.Add(40, "Hemd")
 
        bs.DataSource = dt
        bs.Sort = "Pos Asc"
    End Sub
 
 
    Private Sub TauschMethode()
 
        If bs.Position = -1 Then Exit Sub
 
        Dim a As String = _
            CType(CType(bs.Current, DataRowView)("Feld"), String)
 
        Dim dv As DataView = New DataView(dt)
        dv.Sort = "Feld"
        Dim index As Integer = dv.Find(a)
 
        Me.Text = CStr(index)
 
        If index > 0 Then
            Dim Pos_Copy As Integer = CType(dv(index)("Pos"), Integer)
 
            dv(index).BeginEdit()
            dv(index)("Pos") = dv(index - 1)("Pos")
            dv(index).EndEdit()
 
            dv(index - 1).BeginEdit()
            dv(index - 1)("Pos") = Pos_Copy
            dv(index - 1).EndEdit()
        End If
 
    End Sub
 
 
    Private Sub btnTausch_Click(sender As Object, _
        e As System.EventArgs) Handles btnTausch.Click
 
        TauschMethode()
    End Sub
End Class
Wenn Du in einer Sortier-Spalte mehrere Werte ändern willst,
kannst Du nicht über den Zeilen-Index gehen, sondern mußt stets
die Find-Methode nutzen - und zu Beginn die korrespondierenden
Werte abfragen.

Beitrag wurde zuletzt am 11.01.14 um 18:38:20 editiert.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Datensätze im DataGridView verschieben / tauschen2.581spatzimatzi10.01.14 13:37
Re: Datensätze im DataGridView verschieben / tauschen1.939Manfred X10.01.14 15:12
Re: Datensätze im DataGridView verschieben / tauschen1.919spatzimatzi10.01.14 15:35
Re: Datensätze im DataGridView verschieben / tauschen1.942Manfred X10.01.14 16:26
Re: Datensätze im DataGridView verschieben / tauschen1.860spatzimatzi11.01.14 15:23
Re: Datensätze im DataGridView verschieben / tauschen1.884Manfred X11.01.14 15:29
Re: Datensätze im DataGridView verschieben / tauschen1.837spatzimatzi11.01.14 15:44
Re: Datensätze im DataGridView verschieben / tauschen1.829Manfred X11.01.14 15:46
Re: Datensätze im DataGridView verschieben / tauschen1.833spatzimatzi11.01.14 16:02
Re: Datensätze im DataGridView verschieben / tauschen1.846Manfred X11.01.14 16:16
Re: Datensätze im DataGridView verschieben / tauschen1.857spatzimatzi11.01.14 16:46
Re: Datensätze im DataGridView verschieben / tauschen1.926Manfred X11.01.14 16:54
Re: Datensätze im DataGridView verschieben / tauschen1.971spatzimatzi11.01.14 17:40
Re: Datensätze im DataGridView verschieben / tauschen2.141Manfred X11.01.14 18:12
Re: Datensätze im DataGridView verschieben / tauschen1.954spatzimatzi11.01.14 19:54
Re: Datensätze im DataGridView verschieben / tauschen1.954Manfred X11.01.14 20:28

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