maltek Geschrieben 22. Februar 2012 Geschrieben 22. Februar 2012 Moin moin, Ich habe eine foreach-Schleife mit der ich alle Zeilen einer Tabelle durchlaufe. foreach(DataRow _row in Table.Rows) Nun ist es aber so, das ich innerhalb der Schleife neue Zeilen zur Tabelle hinzufüge. Leider bleibt der Wert in der foreach-Bedingung immer gleich, also Table.Rows.Count ergibt immer 15. Ich hoffe es ist einigermaßen verständlich. Hat jemand vielleicht eine Idee?
carstenj Geschrieben 22. Februar 2012 Geschrieben 22. Februar 2012 Hi, 1. Zumindest ein Hinweis auf die Programmiersprache wäre praktisch 2. Du würdest ja dann eine Endlosschleife erzeugen, wenn bei jedem Durchlauf eine Zeile hinzugefügt wird. 3. Daraus lässt sich schließen, dass Foreach vorher nachschaut, wieviel Einträge vorhanden sind und dann erst die Schleife beginnt
Leimy84 Geschrieben 22. Februar 2012 Geschrieben 22. Februar 2012 1. Anzahl Zeilen ermitteln in einer Variablen speichern 2. For-Schleife von 1ter Zeile bis eben gespeicherter Zeile Funktioniert natürlich nur, wenn die Zeilen am Ende eingefügt werden. Ansonsten kommt es natürlich stark darauf an, wo die neue Zeile eingefügt wird. Edit: ich habs nochmal gelesen, möchtest du denn nun auch die neuen Zeilen durchlaufen oder nur die, die vorher drin waren?
maltek Geschrieben 23. Februar 2012 Autor Geschrieben 23. Februar 2012 1. Anzahl Zeilen ermitteln in einer Variablen speichern 2. For-Schleife von 1ter Zeile bis eben gespeicherter Zeile Funktioniert natürlich nur, wenn die Zeilen am Ende eingefügt werden. Ansonsten kommt es natürlich stark darauf an, wo die neue Zeile eingefügt wird. Edit: ich habs nochmal gelesen, möchtest du denn nun auch die neuen Zeilen durchlaufen oder nur die, die vorher drin waren? Die Zeilen werden mittendrin eingefügt. foreach(DataRow _row in Table.Rows) { if(...) { Rows.AddAt(_row.RowIndex, _newrow); //_newrow ist die Zeile die ich einfüge } } Konkret ist nun das Problem das _row.RowIndex den alten Index liefert, wenn ich aber bereits n Zeilen hinzugefügt habe (die über der aktuellen Zeile liegen) landet meine neue Zeile an der falschen Stelle. So, durch das aufschreiben ist es mir nun selber eingefallen: ich zähl einfach mit wie viele Zeilen ich einfüge und rechne den Index entsprechend hoch. :upps Danke für die Hilfe
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden