Avatar billede Slettet bruger
21. juli 2009 - 14:54 Der er 5 kommentarer og
1 løsning

Ikke valgbar

Jeg har lavet en dropdown liste, med en masse forskellige items. Det er lavet i ASP.net og det her er skrevet i codebehind.

Jeg henter min data fra en sql database og så har jeg added et item, som hedder "Vælg kategori".

Hvordan gør jeg "Vælg kategori til ikke valgbar, så den bare vises men ikke kan vælges.

Det er lavet sådan at du vælger det item du skal bruge og trykker på en button og det skrives ud, men pt kan "Vælg kategori" også skrives ud.

Min kode

this.CategoriesList.Items.Add(new ListItem("Vælg kategori:", ""));
                List<Category> categories = Data.Datalayer.GetCategories();
                foreach (Category categori in categories)
                {
                    if (categori.Manufactorer.ToString() == this.ManufacturerList.SelectedValue)
                        this.CategoriesList.Items.Add(new ListItem(categori.Name, categori.Id.ToString()));
Avatar billede thesurfer Nybegynder
21. juli 2009 - 15:04 #1
Hvis det ikke kan lade sig gøre, kan du gøre følgende (har ikke set dit design..)

1) Fjern this.CategoriesList.Items.Add(new ListItem("Vælg kategori:", ""));

2) Smid en Label ind hvor der står "Vælg kategori:"

3) Indholdet af din liste skal bare indeholde de værdi man kan vælge

4) Den første værdi der kommer ud, er selected
Avatar billede Slettet bruger
21. juli 2009 - 17:03 #2
Men er det ikke en mulighed at lave en slags "Overskrift" i min dropdown liste som ikke er valgbar?
Avatar billede thesurfer Nybegynder
21. juli 2009 - 22:26 #3
Via HTML kan man indsætte grupper med "optgroup", ASP.NET understøtter det vist ikke.. med mindre at man bruger "ExtendedDropDownList":

http://www.sharppieces.com/free-aspnet-controls/ExtendedDropDownList.aspx


Eksempel på "optgroup":

<optgroup label="HelloWorld">OPTIONS-INDSÆTTES-HER</optgroup>

Hvis man ikke putter options i "OPTIONS-INDSÆTTES-HER"-området, får man en "overskrift" ("HelloWorld") der står alene, som ikke kan vælges..


Men det du forespørger giver ikke mening..

Hvis "overskriften" ikke må kunne vælges, kan "overskriften" heller ikke stå som "valgt" (teksten som vises i din dropdownliste) til at starte med.. derfor kan der ikke stå "Vælg kategori", hvis man ikke kan vælge "Vælg kategori" i listen..


Du kan:

1) Vælge at lade "Vælg kategori" være med i listen, f.eks. med værdien "", som du så skal checke/teste for.

2) Vælge at skrive "Vælg kategori" i en label, og fylde dropdownlisten med de muligheder man faktisk må vælge.
Avatar billede Slettet bruger
29. juli 2009 - 11:00 #4
Jeg fik det til at fungere ved at lave et javascript.

<script type="text/javascript">       
        function ToggleList(element) {
            document.getElementById('<%= ManufacturerList.ClientID %>').disabled = element.value.length > 0;
        }       

    </script>

Kommer een med et svar.
Avatar billede thesurfer Nybegynder
29. juli 2009 - 14:27 #5
Så er det bedre at gøre det med codebehind / C#.

Evt sådan her:


this.CategoriesList.Items.Add(new ListItem("Vælg kategori:", ""));

List<Category> categories = Data.Datalayer.GetCategories();

if (categories.count == 0)
{

    CategoriesList.Enabled = False;

} else {

    foreach (Category categori in categories)
    {

        ... tilføj til liste og hvad du nu kan finde på ...

    }

}




Men det løser jo stadigvæk ikke dit problem..

Hvis der ER muligheder, og du har teksten "Vælg kategori", vil det stadigvæk være muligt at vælge "Vælg kategori".


Det nemmeste er nok bare at checke værdien eller indekset af det valgte element, når du kommer over på serversiden igen (codebehind/c#).



Hvis man SKAL vælge noget, ville jeg nok lave en alert (eller lignende) i JavaScript, i onchange på din select (som det hedder når det konverteres til HTML).

Eksempel:

onchange="if (this.selectedIndex == 0) { alert('Du skal markere et andet valg'); }"



Koderne er ikke testet men burde virke.

- Svar
Avatar billede Slettet bruger
29. juli 2009 - 15:12 #6
Tak skal du have :D
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester