| |
VB.NET - Ein- und UmsteigerRe: Datagrid Spaltensortierung - Hilfe | | | Autor: inkvc17 | Datum: 01.07.07 14:58 |
| naja, die belegungstabelle ist noch nciht fertig
also meinst du, ich sollte das grid nicht bei einem datumswechsel leeren und die zeilen / spalten neu anlegen lassen sondern einfach die nicht benötigten Tage ausblenden. Ich werd mal nen bissle was probieren.
Bis jetzt ist es noch nicht perfekt, könntest du mir vieleiocht noch verraten, wie ich gestimmte zellen einer zeile gruppieren bzw zusammenfügen kann???
Viele Grüße
Rob | |
Datagrid Spaltensortierung - Hilfe | | | Autor: inkvc17 | Datum: 30.06.07 16:54 |
| Hallo,
ich lasse in ein Datagrid automtisch Zeilen und Spalten einfügen.
Ich möchte redoch nicht das sich die Spalten sortieren lassen.
Ich habe es jetzt so gelößt:
...............................
Dim i As Integer
dt.Columns.Add(New DataColumn("Plätze"))
For i = 1 To mTage
dt.Columns.Add(New DataColumn(i.ToString(), _
GetType(String)))
Next i
Dim rows As Integer = test
dt2 = Datenbank1DataSet2.Tables("Plätze")
For Each dr In dt2.Rows
test2 = dr("Nummer").ToString
dr = dt.NewRow
dt.Rows.Add(test2)
Next
DataGridView1.DataSource = dt
Dim s As DataGridViewColumn
For Each s In DataGridView1.Columns
s.SortMode = DataGridViewColumnSortMode.NotSortable
Next s
DataGridView1.AutoResizeColumns() Leider dauert diese Methode ewig lange und ist so nicht effektiv.
Gibt es noch eine andere Möglichkeit??
Viele Grüße
Rob | |
Re: Datagrid Spaltensortierung - Hilfe | | | Autor: Melkor | Datum: 30.06.07 21:10 |
| Warum machst du das überhaupt? Eine DataTable hast du schon. Und was deine seltsame For Each dr Schleife bewirken soll ist mir schleierhaft.
Those people who think they know everything are a great annoyance to those of us who do - Isaac Asimov | |
Re: Datagrid Spaltensortierung - Hilfe | | | Autor: inkvc17 | Datum: 30.06.07 21:59 |
| Hi,
naja, ich habe ein Datagird aber erstmal ohne Spalten und Zeilen
Dann erstelle ich wie eine Spalte mit dem Namen Plätze und dann 30-31 (abbhängig vom Montat) Spalten, die Zeilen kommen dann aus der Access Datenbank. Das funktioniert soweit auch schon super aber leider kann man jede Spalte (durch einen klick auf die Spaltenüberschrift) noch sortieren. und das soll nicht passieren. Deshalb läuft die Schleife durch die Spalten und unterbindet die Sortierfunktion. Mach ich denn lt. Code etwas falsch? Auf jeden Fall funktioniert es so - nur halt etwas zu lagssam.
Viele Grüße
Rob | |
Re: Datagrid Spaltensortierung - Hilfe | | | Autor: Melkor | Datum: 30.06.07 22:06 |
| Es ist trivial und kostet nichts die Spalten als nicht-Sortierbar zu markieren. Das ist die Schleife:
Dim s As DataGridViewColumn
For Each s In DataGridView1.Columns
s.SortMode = DataGridViewColumnSortMode.NotSortable
Next s und dauert bestimmt nur Mikrosekunden. Irgendwelche Geschwindigkeitsprobleme liegen wohl woanders, deshalb frage ich was der ganze Code eigentlich sein soll (hat ja nichts mit Sortieren zu tun). Eine Schleife wie
For Each dr In dt2.Rows
test2 = dr("Nummer").ToString
dr = dt.NewRow
dt.Rows.Add(test2)
Next macht wirklich keinen Sinn.
Those people who think they know everything are a great annoyance to those of us who do - Isaac Asimov | |
Re: Datagrid Spaltensortierung - Hilfe | | | Autor: inkvc17 | Datum: 30.06.07 22:54 |
| Hi,
hmm, wie kann ich das denn sonst machen?
wie gesagt die Spalten werden manuell erstellt, die Zeilen kommen aus einer DB:
Dim dt As New DataTable
Dim dt2 As New DataTable
Dim dr As DataRow
DataGridView1.DataSource = Nothing
Dim test As String
test = Me.PlätzeTableAdapter.Fill(Me.Datenbank1DataSet2.Plätze)
Dim test2 As String
Dim mTage As String
' mTage = Date.DaysInMonth(Date.Now.Year, Date.Now.Month)
mTage = Date.DaysInMonth(Me.DateTimePicker1.Value.Year, _
Me.DateTimePicker1.Value.Month)
Dim i As Integer
dt.Columns.Add(New DataColumn("Plätze"))
For i = 1 To mTage
dt.Columns.Add(New DataColumn(i.ToString(), _
GetType(String)))
Next i
Dim rows As Integer = test
dt2 = Datenbank1DataSet2.Tables("Plätze")
For Each dr In dt2.Rows
test2 = dr("Nummer").ToString
dr = dt.NewRow
dt.Rows.Add(test2)
Next
DataGridView1.DataSource = dt
Dim s As DataGridViewColumn
For Each s In DataGridView1.Columns
s.SortMode = DataGridViewColumnSortMode.NotSortable
Next s
DataGridView1.AutoResizeColumns() und so soll das ganze dannach aussehen:
http://www.bildupload.eu/u/070630/j/ee077bb5.jpg
So funktioniert das ganze wunderbar, nur halt etwas langsam.
Viele Grüße
Rob | |
Re: Datagrid Spaltensortierung - Hilfe | | | Autor: Melkor | Datum: 01.07.07 09:48 |
| Erstens solltest du sagen was in der Tabelle Plätze steht (Sonderzeichen in DB Eintitätsnamen sollte man übrigens besser vermeiden). Sind das die Platzbelegungen? Und warum fügst du nur eine Spalte davon in dt ein?
(dr = dt.NewRow ist dabei völlig überflüssig)
Those people who think they know everything are a great annoyance to those of us who do - Isaac Asimov | |
Re: Datagrid Spaltensortierung - Hilfe | | | Autor: inkvc17 | Datum: 01.07.07 12:53 |
| Hi,
jan genau die Tabelle Plätze besteht nur aus den Platznummern und Typzuweisungen
ID | Nummer | Typ
1 | 21 | Dauercamper
DIe Spalten werden je nach Datum automatisch berechnet.
Also 1. Spalte heißte Plätze und dann geht es von 1-31 weiter.
(könnte ich denn die Optik der Spalten oder Zeilen nicht schon vorher oder bei der Erstellung festlegen ? und nicht erst duch eine Schleife im nachhinein.
Bin leider noch ein ziemlicher Anfänger auf dem Gebiet und hoffe du hilfst mir dennoch ein wenig
Viele Grüße
Rob | |
Re: Datagrid Spaltensortierung - Hilfe | | | Autor: Melkor | Datum: 01.07.07 14:47 |
| Und wie werden die Platzbelegungen abgespeichert? Das ist doch Sinn der Sache, oder? Oder schreibt man alles noch von Hand auf falls der Rechner ausgeschaltet wird?
Klar kannst du alles im Designer festlegen, allerdings kannst du nicht zwischen 28, 29, 30 oder 31 Spalten unterscheiden. Das musst du mit Code machen (Spalten unsichtbar setzen, zu.B.). Aber du kannst das auch so machen, lediglich passiert sowieso alles im Code, der Formdesigner generiert auch nur Codezeilen.
Those people who think they know everything are a great annoyance to those of us who do - Isaac Asimov | |
Re: Datagrid Spaltensortierung - Hilfe | | | Autor: Melkor | Datum: 01.07.07 16:03 |
| Vielleicht die Borders ausschalten und eine einheitliche Farbe verwenden?
Those people who think they know everything are a great annoyance to those of us who do - Isaac Asimov | |
Re: Datagrid Spaltensortierung - Hilfe | | | Autor: inkvc17 | Datum: 01.07.07 16:15 |
| also, das mit den ein und ausblenden der nicht benötigten tage funktioniert super schnell.
aber das mit den borders ist keine gute idee, denn es muss ja nopch etwas in der zeile drinstehen - also der name des mieters. und deshalb müssen die zellen eigentlich zusammengefügt (in excel weiss ich wie es geht ) werden. oder gibt es ne andere lösung dafür.
Viele Grüße
Rob | |
| 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 |
|
|
Neu! sevDTA 3.0 Pro
SEPA mit Kontonummernprüfung
Erstellen von SEPA-Dateien mit integriertem BIC-Verzeichnis und Konto- nummern-Prüfverfahren, so dass ungültige Bankdaten bereits im Vorfeld ermittelt werden können. Weitere InfosTipp des Monats TOP Entwickler-Paket
TOP-Preis!!
Mit der Developer CD erhalten Sie insgesamt 24 Entwickler- komponenten und Windows-DLLs. Die Einzelkomponenten haben einen Gesamtwert von 1605.50 EUR...
Jetzt nur 599,00 EURWeitere Infos
|
|
|
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
|
|