Hejsa Christian
Håber du lærte lidt, og vil gerne fortælle mere som du vil kunne gøre din kode nemmere at vedligeholde og mere effektiv, men dette kan vi måske tage over nogle mails.
Jeg lagde mærke til dette:
request
- protected void Page_Load(object sender, EventArgs e)
- {
- form1.Controls.Add(tbu.TableCreationOne());
- TableCreationAction();
- }
Her har du et objekt kaldet "
tbu" som jeg ikke kan se hvor er defineret. Men kunne være en variabel der er sat. Men hvis du kan huske jeg fortalte at dine objekter forsvinder så snart at de er ude af scope.
Altså fx i din metode
TableCreationTwo der laver du en tabel kaldet tb2 og denne værdi forsvinder så snart der ikke er noget der peger på dette objekt hvilket i dette tilfælde er når metoden er slut (selvom du har tilføjet resultatet af denne tabel til din liste.
Ved at du har tbu-objektet holder du en udgave af getAndSet i live, men ved ikke at bruge denne så laver du blot en anden instans af getAndSet som dermed får standart værdien da det ikke er denne der bruges i den første metode.
Og hvis du tænker over det så bruger du tbu-objektet i den første linie i page_load, så hvis du ændrer brugen længere nede bør du vel også ændre den her?
Derudover har jeg lidt svært ved at se hvorfor du tilføjer tabellen til sidens controller før du har udført action?
Og til sidst hvor holder du dit getAndSet-objekt i live? Er det static eller har du en variabel sat et sted der holder det i live?
Hvis vi ser lidt på hvordan vi kan effektificicere din kode og gøre den nemmere at vedligeholde, så ville jeg sige at du kan se lidt på Cascading Style Sheet (CSS). Dette er en måde at beskrive hvordan dine data skal styles/præsenteres og det gode er dette kan defineres et sted og dermed vil du kunne rette din farve olign. for alle steder nødvendigt med en rettelse istedet for 4-5 stykker.
Her tænker jeg specifikt på
- cell1.BorderWidth = 1;
- cell1.Style["Text-Align"] = "center";
- cell1.Width = Unit.Pixel(70);
- cell1.BackColor = Color.PaleGoldenrod;
vil du kunne ændre til
- cell1.class = "RedHeadline";
og ved at lave en CSS fil med følgende tekst:
- .RedHeadline
- {
- border: 1px solid black;
- text-align: center;
- width: 70px;
- Background-color: PaleGoldenrod;
- }
Er ikke sikker på om baggrundsfarven vil virke, men ellers vil du kunne tage et screenshot af din side, gå ind i paint, trykke Ctrl+V, vælge farven med pincetten og trykke på den. Her kan du se Red-, Green-, Blue-værdier som er RGB. Så går du på Google og søger efter "RGB to HEX", hvor du vil kunne indtaste disse farvekoder som vil give en samlet kode.
Denne kopierer du og vil kunne indsætte istedet for PaleGoldenrod med "#".
Derved vil du kunne ændre alle de celler til en anden farve ved at ændre farvekoden et enkelt sted.
Jeg sender dig en mail ang. lidt forslag til forbedring af din kodestruktur, og håber ikke jeg virker for belærende da jeg blot ønsker at hjælpe.