Hallo,
ich hab eine Datagridview, welches per BindingSource an einer DataTable in meinem DataSet hängt.
Jetzt versuche ich die Anordnung der Spalten, die da automatisch eingefügt werden, per DisplayIndex zu ändern, was aber nur bedingt bzw. in einer mir nicht nachvollziehbaren Weise funktioniert.
In meiner DataTable sind die Spalten in folgender Reihenfolge vorhanden:
0 V_ID
1 Beginn1
2 Ende1
3 Beginn2
4 Ende2
5 Tage
6 Zeit1
7 Zeit2
8 Aktiv
9 Funktion
10 M_ID
jetzt will mir die beiden IDs aber nicht anzeigen lassen und eine andere Reihenfolge:
0 Aktiv
1 V_ID //ausgeblendet
2 Beginn1
3 Ende1
4 Zeit1
5 Beginn2
6 Ende2
7 Funktion
8 Zeit2
9 Tage
10 M_ID //ausgeblendet
Mein Code sieht also wie folgt aus:
this.bsVertrag = new BindingSource();
this.bsVertrag.DataSource = Speicher.VertragTable;
this.dgvVertrag.DataSource = bsVertrag;
this.dgvVertrag.Columns["Aktiv"].DisplayIndex = 0;
this.dgvVertrag.Columns["Zeit1"].DisplayIndex = 4;
this.dgvVertrag.Columns["Funktion"].DisplayIndex = 7;
this.dgvVertrag.Columns["M_ID"].Visible = false;
this.dgvVertrag.Columns["V_ID"].Visible = false;
jetzt hat das DGV aber folgende Anordnung der Spalten:
0 Aktiv
1 V_ID //ausgeblendet
2 Beginn1
3 Ende1
4 Beginn2
5 Ende2
6 Zeit1
7 Funktion
8 Tage
9 Zeit2
10 M_ID //ausgblendet
Meine Frage wäre jetzt: Warum?
Wenn ich die Aktiv-Spalte an den DisplayIndex 0 setze, funktioniert das ja auch, aber warum bei den anderen nicht?
Die Indizes der anderen Spalten werden doch automatisch "verschoben", wenn ich einen DisplayIndex einer Spalte ändere, oder?
Kann mir da bitte mal jemand auf die Sprünge helfen, irgendwie kann ich da die Indizevergabe nicht ganz nachvollziehen.
Schon mal danke im voraus.
Thoxx
das problem wird sein, dass z.b. der Displayindex"4" , nach deiner bearbeitung, 2 werte hat.
4 Zeit1
4 Ende2
gib einfach jeden feld einen neuen displayindex und nicht den feldern die du verschiesbt, das dürfte warscheinlich shocn reichen.
mfg
Dex
Hm, ich dachte eigentlich, dass sich die Indizes verschieben.
D.h. wenn ich Zeit1 den DisplayIndex 4 gebe, bekommt die Spalte, du davor den Wert 4 hatte die 5, die Spalte die Wert 5 hatte bekommt 6 usw.
Also das die alle eins weiter "hinter" rücken.
Hi Thoxx!
Wennde ein typisiertes Dataset verwendest, kannste die Spalten doch im Designer anordnen, und die ID-Spalten rauswerfen.
Der frühe Apfel fängt den Wurm.
Hi Thoxx!
Wennde ein typisiertes Dataset verwendest, kannste die Spalten doch im Designer anordnen, und die ID-Spalten rauswerfen.
Schlechte Idee imho.
ID invisible machen, Spalten im DataGridView vorab festlegen und das entsprechende Property (war irgendwie DataPropertyName) auf den Spaltennamen setzen.
Shift to the left, shift to the right!
Pop up, push down, byte, byte, byte!
YARRRRRR!
Hi Thoxx!
Wennde ein typisiertes Dataset verwendest, kannste die Spalten doch im Designer anordnen, und die ID-Spalten rauswerfen.
Schlechte Idee imho.ID invisible machen, Spalten im DataGridView vorab festlegen und das entsprechende Property (war irgendwie DataPropertyName) auf den Spaltennamen setzen.
Wieso schlechte Idee?
Ah, ich meine nicht: Dataset-Designer, sondern Designer des DataGridViews.
Also DGV-Smart-Tag klicksen, und dann "Spalten bearbeiten".
Der frühe Apfel fängt den Wurm.
Das kam sehr missverständlich rüber, ich dachte du meinst den DataSet Designer.
edit: Du brauchst ja nicht unbedingt ein typisiertes DataSet dafür.
Shift to the left, shift to the right!
Pop up, push down, byte, byte, byte!
YARRRRRR!
Du brauchst ja nicht unbedingt ein typisiertes DataSet dafür.
Nicht?
Aber dann muß man doch im Form-Designer alle Tabellen und PiPaPo im untypisierten DTS anlegen, und dann wäre das doch total unsicher, falls die Einstellugen nicht 100% auf die Datenbank passen.
Puh, und die Abfragen muß man dann auch von Hand sich ausklamüsern, usw etc pp.
Oder versteh ich irgendwas falsch?
Der frühe Apfel fängt den Wurm.