Laden...

Datagridview und Displayindex

Erstellt von Thoxx vor 16 Jahren Letzter Beitrag vor 16 Jahren 3.620 Views
Thoxx Themenstarter:in
112 Beiträge seit 2008
vor 16 Jahren
Datagridview und Displayindex

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

D
89 Beiträge seit 2008
vor 16 Jahren

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

Thoxx Themenstarter:in
112 Beiträge seit 2008
vor 16 Jahren

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.

5.299 Beiträge seit 2008
vor 16 Jahren

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.

1.200 Beiträge seit 2007
vor 16 Jahren

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!

5.299 Beiträge seit 2008
vor 16 Jahren

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.

1.200 Beiträge seit 2007
vor 16 Jahren

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!

5.299 Beiträge seit 2008
vor 16 Jahren

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.