---
title: "Selected i dropdown"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/88016-selected-i-dropdown"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "andreas_lindh"
published: "2003-10-08T18:21:49.000Z"
updated: "2003-10-09T11:12:01.000Z"
replies: 7
views: 362
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/88016-selected-i-dropdown"
---

# Selected i dropdown

## #1 — andreas_lindh, 2003-10-08T18:21Z

Jag har en dropdown i en datagrid.
När jag kör en insert med värdet från datagriden vill jag att det värde man valt ska vara selected i dropdownen.

Jag har provat med det här men inte fått det att fungera

```
    Private Sub bindgrid()
        Dim matchID As Integer = viewstate("match")
        Dim objBusinessL As New AdminLiveBusinessL()
        Dim ds As DataSet = objBusinessL.GetsGame(matchID)
        dgmatcher.DataSource = ds
        dgmatcher.DataBind()
    End Sub

    Public Sub UpdateResultat(ByVal sender As Object, ByVal e As EventArgs)
        Dim griditem As DataGridItem
        Dim mydropdown As DropDownList
        Dim period As String
        For Each griditem In dgmatcher.Items
            Dim resA As Integer = CInt(CType(griditem.FindControl("tbResa"), TextBox).Text)
            Dim resB As Integer = CInt(CType(griditem.FindControl("tbResb"), TextBox).Text)
            Dim id As Integer = CInt(CType(griditem.FindControl("lblID"), Label).Text)
            period = CType(griditem.FindControl("ddlPeriod"), DropDownList).SelectedItem.Value
            mydropdown = CType(griditem.FindControl("ddlPeriod"), DropDownList)
            Dim objBusinessL As New AdminLiveBusinessL()
            objBusinessL.updateResultat(id, resA, resB, period)
        Next
        bindgrid()
        mydropdown.SelectedIndex = mydropdown.Items.IndexOf(mydropdown.Items.FindByValue(period))
    End Sub
```

Dropdownen ser ut så här

```
<asp:dropdownlist id="ddlPeriod" runat="server">
	<asp:listitem value="0">Match ej startad</asp:listitem>
	<asp:listitem value="1">1</asp:listitem>
	<asp:listitem value="2">2</asp:listitem>
	<asp:listitem value="3">3</asp:listitem>
	<asp:listitem value="4">Sudden death</asp:listitem>
	<asp:listitem value="5">Slut</asp:listitem>
</asp:dropdownlist>
```

Tar jag bort bindgrid() blir rätt värde valt men då fungerar inte inserten

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

## #2 — m_soderlund, 2003-10-09T07:47Z

Har du provat med att sätta dit *AutoPostBack="True"*?

```
<asp:dropdownlist id="ddlPeriod" AutoPostBack="True" runat="server">
```

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

## #3 — NETwork, 2003-10-09T07:48Z

Har du provat att binda din datagrid efter det att du sätter selectedindex på din dropdownlist?

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

## #4 — andreas_lindh, 2003-10-09T09:44Z

> **NETwork skrev:**
>
> Har du provat att binda din datagrid efter det att du sätter selectedindex på din dropdownlist?

Ja. Det fungerar inte heller. Det första alternativt i dropdownlisten bli valt hela tiden

> Har du provat med att sätta dit AutoPostBack="True"?

 

Nej. Jag har en knapp för att göra inserten så jag vill inte att den postas automatiskt.

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

## #5 — Dino, 2003-10-09T10:00Z

Du har möjligtvis inte satt.

```
sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
   bindgrid()
end sub
```

 
istället för

```
sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
   if not ispostback then
      bindgrid()
   end if
end sub
```

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

## #6 — andreas_lindh, 2003-10-09T10:01Z

nej. Jag har if not ispostback i page_load

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

## #7 — NETwork, 2003-10-09T10:42Z

Din dropdownlist finns alltså i din datagrid och du vill bara sätta selectedindex på den ddl som är på den rad du nyss uppdaterat? Eftersom du sätter mydropdown = CType(griditem.FindControl("ddlPeriod"), DropDownList) i en loop så är den inte giltig utanför loopen, du måste alltså leta rätt på kontrollen med findcontrol på den rad i datagriden där du ska uppdatera den utanför loopen.

Alltså, för att illustrera felet jag tror att du har gjort:

```
FEL:
for each blah blah
  string a = "a"
}
Response.Write(a)

RÄTT:
string a = ""
for each blah blah
  a = "a"
}
Response.Write(a)
```

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

## #8 — andreas_lindh, 2003-10-09T11:12Z

Jag löste det med en onitemdatabound på datagriden och så la jag till en textbox bredvid dropdownen som jag hämtar värdet ifrån.

```
    Public Sub dgmatcher_databound(ByVal sender As Object, ByVal e As DataGridItemEventArgs)
        If e.Item.ItemType = ListItemType.Item Or e.Item.ItemType = ListItemType.AlternatingItem Then
            Dim mytextbox As TextBox
            mytextbox = e.Item.FindControl("tbMPer")
            Dim per As Integer = CInt(mytextbox.Text)
            Dim mydropdown As DropDownList
            mydropdown = e.Item.FindControl("ddlPeriod")
            mydropdown.SelectedIndex = mydropdown.Items.IndexOf(mydropdown.Items.FindByValue(per))
        End If
    End Sub
```

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

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/88016-selected-i-dropdown
