---
title: "dropdown (som vanligt)"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/78072-dropdown-som-vanligt"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "P"
published: "2003-05-25T20:19:44.000Z"
updated: "2003-05-27T19:00:43.000Z"
replies: 5
views: 352
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/78072-dropdown-som-vanligt"
---

# dropdown (som vanligt)

## #1 — P, 2003-05-25T20:19Z

Har 6 st dropdown, vill kolla så att de inte innehåller samma värde. Hur skiver man bäst? Detta vill inte funka:

```
 If (dd1.SelectedItem.Value <> dd2.SelectedItem.Value <> ddl3.SelectedItem.Value <> ddl4.SelectedItem.Value <> ddl5.SelectedItem.Value) Then
```

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

## #2 — Dino, 2003-05-25T21:06Z

Nedan är ett alternativ, blir ju förstås en del kontroller.

```
'block 1
<asp:DropDownList ID="ddl1" Runat="server">
   <asp:ListItem text="One"/>
   <asp:ListItem text="Two"/>
   <asp:ListItem text="Three"/>
   <asp:ListItem text="Four"/>
</asp:DropDownList>
<asp:CompareValidator ID="Comparevalidator1"  ControlToValidate="ddl1" ControlToCompare="ddl2" ErrorMessage="2" Operator="NotEqual" Runat="server"/>
<asp:CompareValidator ID="Comparevalidator2"  ControlToValidate="ddl1" ControlToCompare="ddl3" ErrorMessage="3" Operator="NotEqual" Runat="server"/>
<asp:CompareValidator ID="Comparevalidator3"  ControlToValidate="ddl1" ControlToCompare="ddl4" ErrorMessage="4" Operator="NotEqual" Runat="server"/>
<asp:CompareValidator ID="Comparevalidator4"  ControlToValidate="ddl1" ControlToCompare="ddl5" ErrorMessage="5" Operator="NotEqual" Runat="server"/>
<asp:CompareValidator ID="Comparevalidator5"  ControlToValidate="ddl1" ControlToCompare="ddl6" ErrorMessage="6" Operator="NotEqual" Runat="server"/>

'block2
<asp:DropDownList ID="ddl2" Runat="server">
   <asp:ListItem text="One"/>
   <asp:ListItem text="Two"/>
   <asp:ListItem text="Three"/>
   <asp:ListItem text="Four"/>
</asp:DropDownList>
<asp:CompareValidator ID="Comparevalidator6"  ControlToValidate="ddl2" ControlToCompare="ddl1" ErrorMessage="1" Operator="NotEqual" Runat="server"/>
<asp:CompareValidator ID="Comparevalidator7"  ControlToValidate="ddl2" ControlToCompare="ddl3" ErrorMessage="3" Operator="NotEqual" Runat="server"/>
<asp:CompareValidator ID="Comparevalidator8"  ControlToValidate="ddl2" ControlToCompare="ddl4" ErrorMessage="4" Operator="NotEqual" Runat="server"/>
<asp:CompareValidator ID="Comparevalidator9"  ControlToValidate="ddl2" ControlToCompare="ddl5" ErrorMessage="5" Operator="NotEqual" Runat="server"/>
<asp:CompareValidator ID="Comparevalidator10"  ControlToValidate="ddl2" ControlToCompare="ddl6" ErrorMessage="6" Operator="NotEqual" Runat="server"/>

'sen ytterliggare 4 block
```

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

## #3 — P, 2003-05-26T11:29Z

Ohh massa kontroller! Ingen som har något exempel med:

for each dropdown in page.controls 
loopa genom alla etc

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

## #4 — Gladh, 2003-05-26T13:32Z

Jag hade nog tatt och skapat mig en hashtable och använd dropdownlistans värde som nyckel och sedan satt in ett fiktivt värde i hashtablen.

Du får nämligen inte har 2 likadana nycklar i en hashtabel, då får du ett fel. typ något sånt här:

```
HashTable myTable = new HashTable();

try{
 myTable.Add(ddl1.SelectedItem.value,true);
 myTable.Add(ddl2.SelectedItem.value,true);
 myTable.Add(ddl3.SelectedItem.value,true);
 myTable.Add(ddl4.SelectedItem.value,true);
 myTable.Add(ddl5.SelectedItem.value,true);
 myTable.Add(ddl6.SelectedItem.value,true);
}catch(Exception e){
 //-- två eller flerar dropdowlistar har samma värde... FEL
}
```

Något sånt, läs på om HashTable så får du mer info.

\- Magnus

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

## #5 — P, 2003-05-26T14:26Z

Tack! Fungerar prima!

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

## #6 — P, 2003-05-27T19:00Z

En lösning i c#

```
string[] values = new string[6];

bool hasError = false;

for (int i=1; i<=6; i++)

{

     DropDownList ddl = (DropDownList) Page.FindControl("dd" + i.ToString());

     string value = ddl.SelectedItem.Value;

     if (Array.IndexOf(values, value) == -1) values[i-1]= value;

     else

     {

         hasError = true;

         break;

     }

}

if (hasError)

{

    // do stuff

}
```

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

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/78072-dropdown-som-vanligt
