Hallo erstmal
Ich hoffe Ihr könnt mir bei folgendem Problem auf die Sprünge helfen:
Ich habe 2 Generic.Dictionary´s.
C#-Quelltext
1: 2:
| private static System.Collections.Generic.Dictionary<System.Guid, PackageContent> packages = new System.Collections.Generic.Dictionary<System.Guid, PackageContent>(); |
und
C#-Quelltext
1: 2:
| private static System.Collections.Generic.Dictionary<System.Guid, PackageMain> packages = new System.Collections.Generic.Dictionary<System.Guid, PackageMain>(); |
Eingaben von der 1ten Dictionary, werden in die 2te Dictionary hinzugefügt. Dazu führt die ObjektDataSource - Klasse einen Insert aus.
C#-Quelltext
1: 2: 3: 4: 5:
| [DataObjectMethod(DataObjectMethodType.Insert, true)] public static void InsertPackageContentData(PackageContent packageContent) { packages.Add(packageContent.PaketID, packageContent); } |
Die PaketID wird mit
System.GUID bestimmt. Dh, dass die Dictionary keine 2 gleichen Schlüsselwerte einfügen kann.
Mit einem Klick auf ein Button, wird diese Dictionary in eine weitere Gridview eingefügt, so dass der Anwender eine kleine Zusammenfassung hat.
C#-Quelltext
1: 2: 3: 4: 5: 6: 7:
| protected void btn_savePackage_Click(object sender, EventArgs e) {
PackageMainData.InsertPackageMainData(new PackageMain("Paket", PackageContentData.GetPackagesByObject())); ODS_PackageMainData.Select(); mainTable.DataBind(); } |
Die Funktion PackageContentData.GetPackagesByObject() sieht so aus:
C#-Quelltext
1: 2: 3: 4: 5:
| [DataObjectMethod(DataObjectMethodType.Select, true)] public static System.Collections.Generic.ICollection<PackageContent> GetPackagesByObject() { return packages.Values; } |
Beim Debuggen jedoch ist mir aufgefallen, dass bei jedem .add, die alten Werte in der Dictionary meiner 2ten Gridview überschrieben werden. Ich bin noch ein Anfänger und hab keine Ahnung, woran es liegt...
Hoffe, dass Ich die Problematik vermitteln konnte
Danke im Vorraus für jede Hilfestellung