Hjælp til dynamiske elementer (styling)

Tags:    asp.net

Hejsa

Jeg er ved at se på en liste med mine kompetencer som skal præsenteres på min side, og da dette jo altid er et punkt som vil blive forbedret og ofte opdateret ønsker jeg at bygge noget der kan fungere dynamisk.
Mit design vil være:

BRUGT ---------- KOMPETENCE ---------- NIVEAU ---------- ERFARING
2011 .............. C# (2.0, 3.5, 4.0) ......... |||||| Ekspert ......... 5 år

Altså at jeg har en tabel med nogle overskrifter og herefter skal der i min codebehind puttes data ind. Dette er ikke problemet, men mere stylingen af samme.
Fx vil jeg gerne have at første kolonne har en baggrundsfarve der er anderledes end den på siden, og vil gerne benytte nogle klasser på de forskellige celler, men det er blot at når jeg har min celle så benytter jeg cssklassen og så vil alt i denne blive stylet efter denne css-klasse?

Fold kodeboks ind/udCSharp kode 


Endnu værre er det med cellen med niveau, hvor jeg gerne vil have nogle streger eller mindre pæle der skal vise at niveauet vokser. Altså jo mere erfaren, jo flere streger og så med en titel til.
Oveni for at gøre det endnu mere besværligt vil jeg gerne have at disse "progress-bar"-agtige points langsomt skifter farve for at gøre det visuelt tiltalende.

Jeg vil gerne have dette skal fungere dynamisk da denne kompetence skal opdateres efter nogen tid til at være blevet bedre, og her ønsker jeg "blot" at skulle ændre mit niveau hvorefter den grafiske præsentation ændres uden en masse arbejde fra min side af.

Så har nogen noget input til hvordan jeg kan gøre dette på en effektiv måde?



Indlæg senest redigeret d. 06.09.2011 11:17 af Bruger #16651
3 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 3 karma
Sorter efter stemmer Sorter efter dato
Hej Laurits,

I stedet for at skabe en tabel via CodeBehind, bør du imo bruge en af de indbyggede controls, fx GridView eller, for lidt mere kontrol, Repeater. GridView er decideret til tabel strukturer, hvor Repeateren tillader dig at spytte den markup ud som du har brug for, ligegyldigt om det er en tabel eller en liste eller noget helt andet. Du kan så have dine kompetencer i en database eller i en fil, eller i et mellemlag, som du så databinder til den valgte control. Det er som regel sådan man gør den slags i ASP.NET :)

Mvh.

Kasper (TSW)



Indlæg senest redigeret d. 06.09.2011 13:02 af Bruger #1
Kasper
Tak det vil jeg se nærmere på, men med fx en repeater hvordan får jeg så lavet logikken der bestemmerr om 3 eller 4 streger skal være udfyldt og hvilke farver, og om der skal stå trænet, begynder, ekspert eller hvad det nu kan være.
Havde tænkt på at jeg ville lave niveau som en int ud af et maks fx 7 og så et plus i tilfælde af jeg har en certificering.
Således at niveauet bestemmer hvad der skal stå ved siden af.



Der er flere muligheder. Er det noget meget avanceret du skal kunne vise, så kunne det være en custom control eller en UserControl til formålet. Alternativt kan man lave en CodeBehind metode der returnerer noget brugbart, fx et antal streger, et billede eller hvad det nu måtte være. Det er lidt smag og behag og kommer som altid an på behov og situation :)

Mvh.

Kasper (TSW)



t