ASP.NET Tutorial, Part 8 - Simple kontroller - fortsat

Tags:    asp.net
Skrevet af Bruger #7741 @ 11.07.2005
Vi slutter vores gennemgang af de simple kontroller med at kigge på forskellige typer af lister - herunder ListBox og DropDownList.

ListBox


En ListBox giver en bruger mulighed for at vælge et (det er standard) eller flere elementer på en liste.


Figur 1 En ListBox i aktion.

Som opmærkning er den simple syntaks som følger:
Fold kodeboks ind/udKode 

Speciel for kontrollen er egenskaben SelectionMode, som i opmærkningen kan indeholde værdien Single eller Multiple. Ved Single kan der kun vælges et element på listen.
De værdier som ønskes vist i listboksen, er objekter af typen ListItem som blandt andet indeholder egenskaberne Value og Text. Sidstnævnte er den streng som ønskes vist i listen, og Value er en eventuel nøgle. Tænk for eksempel på en liste med bynavne og postnumre. I hvert element er bynavnet placeret i Text, og postnummeret placeret i Value. På den måde er det som vi skal se, nemt at aflæse et postnummer ud fra brugerens valg af en by. Man behøver dog ikke angive en nøgle i Value. Er der ikke nogen værdi i Value, vil ASP.NET blot returnere Text-egenskaben.
En ListItem indeholder også Selected-egenskaben, som angiver om elementet er valgt.

Kode


Man kan naturligvis også programmeringsmæssigt tildele listboksen værdier. Det sker gennem kontrollens Items-samling, som blandt andet indeholder metoden Add. Metoden er overloaded (den kan kaldes med flere forskellige argumenter), og skal man blot indsætte elementer hvor Text- og Value-egenskaberne er ens, kan man derfor benytte metoden med en enkelt streng som argument:
Fold kodeboks ind/udKode 


Bemærk de to måder at indsætte objekter i listboksen på - enten oprettes objektet på forhånd, eller også i forbindelse med kaldet. Bemærk også egenskaben Selected. Den fortæller om elementet er valgt.
Hvis man bruger Web Matrix, kan elementer i en listboks nemt vedligeholdes - se figur 2. Bemærk igen de tre egenskaber fra ListItem-klassen - Text, Value og Selected.


Figur 2 Gennem WeB Matrix er det nemt at vedligeholde elementer i en ListBox.

For at finde et element valgt af brugeren kan man eksempelvis benytte egenskaben SelectedItem fra selve kontrollen, som returnerer et ListItem-objekt.

Eksempel
Lad os se på et eksempel som bruger såvel opmærkninger som kode til at oprette en ListBox:
Fold kodeboks ind/udKode 


Siden består af en liste, en knap og en etiket - se figur 1. Elementerne i listen oprettes dels i opmærkningerne og dels i koden. I koden angives ligeledes, at det første element skal være markeret.
Når der klikkes på knappen, findes det element brugeren har valgt, og postnummeret vises. Det sker ved hjælp af førnævnte SelectedItem-egenskab.

Find elementer


Kontrollens Items-egenskab (samling af ListItem-objekter) indeholder to metoder som kan være meget brugbare - nemlig metoderne FindByText og FindByValue. De kan bruges til at finde et element i en liste ud fra tekst eller nøgle.
Hvis man eksempelvis ønskede at finde og vælge elementet med postnummeret 3000 i det forrige eksempel, kan FindByValue bruges som følger:

Fold kodeboks ind/udKode 


Først sørger koden for at der ikke er nogen elementer markeret, og derefter findes Helsingør som markeres. Man kunne også have søgt efter Helsingør med metoden FindByText.

Flere valgte elementer


Indtil videre har vi koncentreret os om en liste hvor der kun kan vælges et element af brugeren. Ved at tildele egenskaben SelectionMode værdien ListSelectionMode.Multiple (via kode) eller blot Multiple (via opmærkning) kan flere elementer vælges af brugeren. Det kan eksempelvis ske ved at holde kontrol-knappen nede medens der klikkes på elementer.
Det gør det lidt mere kompliceret at aflæse hvilke elementer der er valgt af brugeren, men man kan eventuelt løbe alle elementer igennem og kontrollere Selected-egenskaben. I eksemplet fra tidligere kan listboksen ændres til at kunne håndtere flere markeringer som følger:
Fold kodeboks ind/udKode 


DropDownList


En DropDownList er ligeledes en liste med elementer som brugeren kan vælge imellem, men i modsætning til en ListBox er listen "klappet sammen" til en enkelt linje således, at brugeren først skal klikke på en lille pil og herefter vælge et element på en liste. Se figur 3.


Figur 3 Brug af en DropDownList.

DropDownList minder meget om ListBox i brug - dog med den store forskel at der ikke kan vælges flere elementer, og at der altid vil være valgt et element. Den er meget benyttet fordi den ikke fylder så meget, og fordi brugeren altid tvinges til at foretage et valg.
Fold kodeboks ind/udKode 

Bortset fra at der ikke kan vælges mere end et element på listen, er der ikke den store forskel i den kodemæssige håndtering sammenlignet med en ListBox. Der henvises derfor til gennemgangen af denne kontrol.


Hvad synes du om denne artikel? Giv din mening til kende ved at stemme via pilene til venstre og/eller lægge en kommentar herunder.

Del også gerne artiklen med dine Facebook venner:  

Kommentarer (0)

Du skal være logget ind for at skrive en kommentar.
t