---
title: "Bestämma SELECTED i DropDownList"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/96781-bestämma-selected-i-dropdownlist"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "edebro"
published: "2004-02-07T16:36:40.000Z"
updated: "2004-02-09T14:00:59.000Z"
replies: 18
views: 590
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/dotnet/96781-bestämma-selected-i-dropdownlist"
---

# Bestämma SELECTED i DropDownList

## #1 — edebro, 2004-02-07T16:36Z

Detta är en rätt vanlig företeelse så det måste nästan finnas en smidig lösning i .NET.

Jag har ett värde i en databas, och vill sätta en ListItem till selected="true", om värdet i databasen är detsamma som ListItems värde.

Pseudokod (vbscript/asp) hur jag menar;
\<option value="lala" \<% If objRS("DbColumn") = "lala" Then Response.Write("selected") %\>\>
osv...

Hur gör jag detta på smidigast sätt i ASP.NET?

Har lite tidspress så jag är grymt tacksam för snabba svar! ;) :birp

Permalänk: https://www.webforum.nu/p/96781

## #2 — icaaq, 2004-02-07T16:44Z

C# lösning 
ddlimage är min selectlist

```
[red]
ddlimage.DataBind(); 
i = 0;
isfound = false;
while( i < ddlimage.Items.Count && isfound == false)
{
	li = ddlimage.Items[i];
	if(li.Value == [b]"ditt värde"[/b])
	{
		ddlimage.SelectedIndex = i;
		isfound = true;
	}
	i++;
}
[/red]
```

mv icaaq

Permalänk: https://www.webforum.nu/p/1270644

## #3 — edebro, 2004-02-07T16:57Z

Tack som fan, snabbt och bra svar!
Det fungerar skitbra

Permalänk: https://www.webforum.nu/p/1270649

## #4 — Pace, 2004-02-07T17:03Z

Det är betydligt lättare att använda den inbyggda metoden FindByValue för att markera rätt alternativ:

```
ddlCategory.Items.FindByValue("blaha").Selected = True
```

Under förutsättning att dropdownlistan finns och är fylld förstås. Annars får du först instansiera Items-objektet och kontrollera att det finns/är fyllt och därefter köra FindByValue & Selected.

Permalänk: https://www.webforum.nu/p/1270650

## #5 — icaaq, 2004-02-07T17:29Z

> **Pace skrev:**
>
> Det är betydligt lättare att använda den inbyggda metoden FindByValue för att markera rätt alternativ:
> 
>
>
> ```
> ddlCategory.Items.FindByValue("blaha").Selected = True
> ```
>
> 
> 
> Under förutsättning att dropdownlistan finns och är fylld förstås. Annars får du först instansiera Items-objektet och kontrollera att det finns/är fyllt och därefter köra FindByValue & Selected.

du har så rätt så.....det finns ju även FindByText

mv icaaq

Permalänk: https://www.webforum.nu/p/1270660

## #6 — Nöff, 2004-02-07T19:07Z

Men varför inte göra på det enklaste sättet?, om han nu ska selecta med ett Value.

dropdownlist.SelectedValue="22";

SelectedValue har ju både Get och Set. ;)

Permalänk: https://www.webforum.nu/p/1270683

## #7 — Pace, 2004-02-07T21:32Z

> **Nöff skrev:**
>
> dropdownlist.SelectedValue="22";
> 
> SelectedValue har ju både Get och Set. ;)

Ännu enklare!

Permalänk: https://www.webforum.nu/p/1270771

## #8 — renholm, 2004-02-07T21:40Z

> **Pace skrev:**
>
> > **Nöff skrev:**
> >
> > dropdownlist.SelectedValue="22";
> > 
> > SelectedValue har ju både Get och Set. ;)
>
> 
> Ännu enklare!

Under vissa förutsättningar i och för sig, har man ett index fält i databasen som matchar dropdownlisten är det kannon att göra på detta sätt, annars rätt värdelöst :)

red: självklart är det SelectedIndex jag menar och inte SelectedValue :)

Permalänk: https://www.webforum.nu/p/1270776

## #9 — Gladh, 2004-02-07T22:35Z

> Men varför inte göra på det enklaste sättet?, om han nu ska selecta med ett Value.
> 
> dropdownlist.SelectedValue="22";
> 
> SelectedValue har ju både Get och Set.

Nu har jag inte VS.NET installerat på denna dator, så jag kan inte kolla din kod. Men är du säker på att du letar upp den item som har värdet 22 och sätter den posten som markerad.

om jag tolkar koden rätt ihuvudet, så tar du posten som är markerad och ändrar dess värde till 22, det är inte riktigt samma sak :) 

> Under förutsättning att dropdownlistan finns och är fylld förstås. Annars får du först instansiera Items-objektet och kontrollera att det finns/är fyllt och därefter köra FindByValue & Selected.

Spelar ingen roll vilken method man använder så måste man kontrollera om dropdownlistan finns. Eftersom alla kan ge detta fel. Du behöver dock inte instansiera några items objekt, eftersom detta objekt instansieras när dropdownlistan skapas, så finns inte värdet med så får man bara null tillbaka, vilket gör att exemplet inte är så jättelyckat, eftersom det kan ge run-time fel. (du kan ju inte få propertien "selected" på ett null objekt"

Däremot så kan man lägga FindByValue/FindByText i en if-sats och kolla om objectet blir null eller ett objekt, blir det ett objekt så sätter man det objektet till selekted.

Enkelt, snabbt och säkert.

\- Magnus

Permalänk: https://www.webforum.nu/p/1270790

## #10 — Nöff, 2004-02-07T23:51Z

> om jag tolkar koden rätt ihuvudet, så tar du posten som är markerad och ändrar dess värde till 22, det är inte riktigt samma sak

 

Nepps  ;) 

The SelectedValue property can also be used to select an item in the list control by setting it with the value of the item. If no items in the list control contain the specified value, a System.ArgumentOutOfRangeException is thrown.

Jag använder den på min applikation med dropdownlistor. för att selecta sparade svar.

Men det är under förutsättning att man har .net 1.1, SelectedValue finns inte i .net 1.0 (men vem har 1.0 nuförtiden)

Permalänk: https://www.webforum.nu/p/1270943

## #11 — edebro, 2004-02-08T13:19Z

Nöff: Den lösningen var ju helt klart smidigare. Jag hade hoppats att det hade funnits nåt sånt i .NET.
Tackar!

Permalänk: https://www.webforum.nu/p/1271104

## #12 — cyprys, 2004-02-08T14:21Z

Det finns alltid förbättringar från gamla ASP. ;) 
Tips! Såfort du kommer på en "smart" lösning med switchar "\<% %\>": Ta bort - Gör om - Gör rätt :)

Permalänk: https://www.webforum.nu/p/1271122

## #13 — Gladh, 2004-02-08T14:32Z

> The SelectedValue property can also be used to select an item in the list control by setting it with the value of the item. If no items in the list control contain the specified value, a System.ArgumentOutOfRangeException is thrown.

Där ser man, man lär sig något nytt varje dag, riktigt smidig lösning, förutom möjligheten till runtime fel, men gör man som du så har man ju oftast en item med value 22, så då är det smart.

\- Magnus

Permalänk: https://www.webforum.nu/p/1271128

## #14 — Pace, 2004-02-08T15:54Z

> **Gladh skrev:**
>
> > **Pace skrev:**
> >
> > Under förutsättning att dropdownlistan finns och är fylld förstås. Annars får du först instansiera Items-objektet och kontrollera att det finns/är fyllt och därefter köra FindByValue & Selected.
>
> Spelar ingen roll vilken method man använder så måste man kontrollera om dropdownlistan finns. Eftersom alla kan ge detta fel. Du behöver dock inte instansiera några items objekt, eftersom detta objekt instansieras när dropdownlistan skapas, så finns inte värdet med så får man bara null tillbaka, vilket gör att exemplet inte är så jättelyckat, eftersom det kan ge run-time fel. (du kan ju inte få propertien "selected" på ett null objekt"
> 
> Däremot så kan man lägga FindByValue/FindByText i en if-sats och kolla om objectet blir null eller ett objekt, blir det ett objekt så sätter man det objektet till selekted.

Det säger väl sig självt att man inte kan köra metoder på ett fantasiobjekt, men jag menar att man får felmeddelande (vid run-time) om objektet inte är fyllt, dvs ej databundet. Items (som inte behöver instansieras - du har rätt, fel ordval av mig) kan inte retunera några itemcollections (eller vilket objekt det nu representerar) om dropdownlisten inte är fylld och databunden.

Permalänk: https://www.webforum.nu/p/1271169

## #15 — Gladh, 2004-02-08T19:13Z

> men jag menar att man får felmeddelande (vid run-time) om objektet inte är fyllt, dvs ej databundet

Nu har jag inte testat så du kanske har rätt, men varför skulle jag få det?

Om jag inte har någon data i min dropdownlista så har jag inga Items objekt, om jag då gör en FindByValue/FindByText så borde den returnerar NULL och inte något felmeddelande?

Jag har ju aldrig testat, men vore otroligt korkat av MS att göra en Exception då, eftersom man ändå får tillbaka NULL om valuet/texten inte finns.

\- Magnus

Permalänk: https://www.webforum.nu/p/1271243

## #16 — renholm, 2004-02-08T19:16Z

Man får null och sedan när man försöker t.ex sätta .Selected = true får man ett NullReferenceException.

Permalänk: https://www.webforum.nu/p/1271246

## #17 — Pace, 2004-02-08T21:19Z

> **renholm skrev:**
>
> Man får null och sedan när man försöker t.ex sätta .Selected = true får man ett NullReferenceException.

Precis, det är det jag menar.

Permalänk: https://www.webforum.nu/p/1271295

## #18 — Gladh, 2004-02-09T11:52Z

Varför läser ni inte vad jag har skrivit så fall :(

> eftersom detta objekt instansieras när dropdownlistan skapas, så finns inte värdet med så får man bara null tillbaka, vilket gör att exemplet inte är så jättelyckat, eftersom det kan ge run-time fel. (du kan ju inte få propertien "selected" på ett null objekt"

Men det betyder inte att du får ett exception om du gör en FindByValue() när dropdownlistan är tom. 

Alltså gör man så jag tidigare skrivit:

> Däremot så kan man lägga FindByValue/FindByText i en if-sats och kolla om objectet blir null eller ett objekt, blir det ett objekt så sätter man det objektet till selekted.

\- Magnus

Permalänk: https://www.webforum.nu/p/1271532

## #19 — Pace, 2004-02-09T14:00Z

Jo, och det är precis det jag menar.
Läs om det jag skrev så ska du se att vi snackar om samma sak, bara att vi "snackar om" varandra. ;)

> **Jag skrev:**
>
> kontrollera att det finns/är fyllt och **därefter** köra FindByValue & Selected.

För att kontrollera värdet måste man ju göra en If-sats. ;)

Permalänk: https://www.webforum.nu/p/1271617

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/96781-bestämma-selected-i-dropdownlist
