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-2024
 
zurück

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

VB.NET - Ein- und Umsteiger
DataGridView-Probleme... 
Autor: Legend_X
Datum: 19.07.14 17:08

Ich hab eine DataGridView, die 3 Spalten haben soll. Ich
füge die Header hinzu:
gridview.Columns(0).Name = "Index"
gridview.Columns(1).Name = "Name"
gridview.Columns(2).Name = "Typ"
Jetzt habe ich die Header + eine leere Zeile. Sagen
wir mal, ich hab zehn Listen-Einträge, also füge ich
zu der bereits vorhandenen leeren zeile noch neun
hinzu:
gridview.Rows.Add(9)
Dann schreib ich Daten in die vorhandenen 10 leeren
Zeilen, z.B. so:
for x = 0 to 9
   gridview.Rows(x).Cells(0).Value = "Text für Feld 1"
   gridview.Rows(x).Cells(1).Value = "Text für Feld 2"
   gridview.Rows(x).Cells(2).Value = "Text für Feld 3"
next
Und schließlich noch ein Update des GridView:
gridview_1.Update()
Das gibt einen GridView mit Header + 10 ausgefüllten Zeilen.
Mein Problem ist die LETZTE Zeile. Beim Sortieren (Klick auf
Spalten-Header) scheint sie immer ausgeschlossen zu werden,
und wenn ich versuche sie zu löschen (z.B. weil ich sie beim
manuellen Sortieren an anderer Stelle wieder einfügen will),
kommt folgender Fehler:

"Die neue Zeile, für die kein Commit durchgeführt
wurde, kann nicht gelöscht werden."

Ich bitte um Hilfe...

Beitrag wurde zuletzt am 19.07.14 um 17:08:29 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: DataGridView-Probleme... 
Autor: effeff
Datum: 19.07.14 18:31

Du liegst daneben. Du musst den Inhalt nicht dem DatagridView zufügen, sondern einer DataTable, die Du dann dem DatagridView als Datensource zuweist. Das DGV ist nur ein Instrument, um die Daten einer Table anzuzeigen.

EALA FREYA FRESENA

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: DataGridView-Probleme... 
Autor: Kuno60
Datum: 19.07.14 19:15

Hallo LegendX,

wenn du für 10 Zeilen Texte den Zellen hinzufügst, musst du auch 10 Zeilen hinzufügen, also:
gridview.Rows.Add(10)
Wenn du keine neuen Zeilen direkt im DGV hinzufügen willst, sondern nur die vorhandenen Zeilen bearbeiten willst, so setze die Eigenschaft "AllowUserToAddRows" auf "False".
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: DataGridView-Probleme... 
Autor: Manfred X
Datum: 19.07.14 19:16

Beachte, worauf effeff hingewiesen hat.

Ansonsten liegen einige Mißverständnisse bei Dir vor.
Das Erstellen von Headern erzeugt keine Zeile.
Die Standardeinstellung des Grid ermöglich aber das
Anfügen von Zeilen durch den Benutzer (=Anzeige einer noch
zu erstellenden Edit-Zeile).
Dieses Verhalten kann man abschalten.

Public Class frmDGV
 
    Dim dgv As New DataGridView With {.Parent = Me}
 
    Private Sub frmDGV_Load(sender As System.Object, _
          e As System.EventArgs) Handles MyBase.Load
 
 
        With dgv
            .AllowUserToAddRows = False
            With .Columns
                .Add("Index", "index")
                .Add("Name", "Name")
                .Add("Typ", "Typ")
            End With
 
            .Rows.Add(10)
 
            For rowindex As Integer = 0 To 9
                .Rows(rowindex).Cells(0).Value = _
                     "Zeile " & rowindex.ToString & " Spalte " & 0.ToString
                .Rows(rowindex).Cells(1).Value = _
                     "Zeile " & rowindex.ToString & " Spalte " & 1.ToString
                .Rows(rowindex).Cells(2).Value = _
                     "Zeile " & rowindex.ToString & " Spalte " & 2.ToString
            Next
        End With
 
    End Sub
End Class
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: DataGridView-Probleme... 
Autor: Kuno60
Datum: 19.07.14 19:28

Nein effeff, das DataGridView muss nicht an eine Datenquelle gebunden sein!
Man kann es auch direkt verwenden und Zeilen und Daten manuell hinzufügen.

Das DGV kann mit folgenen Moden verwendet werden:

1. Direkt Datengebunden
2. Datengebunden über BindingSource
wobei die Datenquelle nicht unbedingt eine DataTable sein muss. Es kann an jede Datenquelle gebunden werden, die IList implementiert.

3. Ungebunden
Spalten und Zeilen mit Columns.Add() und Rows.Add() hinzufügen.

4. Virtueller Modus
Dabei holt sich das DGV die Daten direkt aus einer beliebigen Datenquelle.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: DataGridView-Probleme... 
Autor: Manfred X
Datum: 19.07.14 19:56

Hallo Kuno!

Rein technisch gesehen hast Du Recht,
aber in diesem Forum wird auf der Trennung von Datenquelle und
Benutzeroberfläche Wert gelegt.
Viele Editier-Vorgänge und andere Datenmanipulationen lassen sich
dann wesentlich einfacher durchführen. (Das Net-Framework ist zudem
in Eigenschaften, Methoden und Verhalten der Controls darauf "ausgelegt").




Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: DataGridView-Probleme... 
Autor: Kuno60
Datum: 19.07.14 20:32

Hallo Manfred,

ich verwende auch nur Datenbindung über BindingSource. Das ist beste Wahl und am einfachsten, aber auch die langsamste Methode.
Der ungebundene Modus eignet sich fast nur für DGV's, die man nur zum Anzeigen von Daten verwendet.
Das DGV ist ein sehr mächtiges Steuerelement und es bietet auch im ungebundenen Modus Möglichkeiten, die man im gebundenen Modus nicht hat.
Es kommt immer darauf an, was man machen will und jeder Modus hat seine Vor- und Nachteile.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: DataGridView-Probleme... 
Autor: Manfred X
Datum: 19.07.14 22:20

Es geht in diesem Zusammenhang nicht darum, wie mächtig bzw. vielseitig einsetzbar
das Datagridview-Control ist, sondern um die Trennung der Windows-Formulare von den
Datenklassen - also um die zweckmäßige Strukturierung von Programmen.

Überträgt man die Daten (zur Anzeige) aus einer Datenquelle in ein ungebundenes Grid,
führt das im Programm gewöhnlich zu einer doppelten Datenhaltung.

http://msdn.microsoft.com/de-de/library/cd28yf6d%28v=vs.110%29.aspx









Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: DataGridView-Probleme... 
Autor: effeff
Datum: 20.07.14 18:35

Jepp, dem ist nichts hinzuzufügen...

EALA FREYA FRESENA

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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-2024 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