troligen kör du detta i page-load händelsen och således varenda gång. kontrollera att du inte laddar om sidan och således skriver över den tidigare förutsättningen nja det märkliga är att om jag lägger den i en not page.ispostback så laddas inget. Vad det beror på vet jag inte men kanske pga att koden ligger i en ascx.vb .. När du säger triggas- är det så att du inte har autopostback-påslagen på kontrollen?Dropdownlist
Jag har en Dropdownlist som jag fyller med tre val.
<code>
With ddlVal
.Items.Clear()
.Items.Add("Välj")
.Items.Add("Ett")
.Items.Add("Två")
End With
</code>
När jag sedan vill sätta "Två" programmässigt som vald så har jag gjort så här
<code>
ddlVal.SelectedValue = "Två"
</code>
När jag sedan provkör koden och väljer ett annat val och sedan väljer tillbaka till valet "Två" så triggar inte
<code>
Protected Sub ddlVal_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ddlVal.SelectedIndexChanged
'Kod för att visa vilket val jag valt.
end sub
</code>
Verkar som om "ddlVal.SelectedValue = "Två" inte är korrekt.
Frågan är hur gör jag för att det skall fungera ?Sv: Dropdownlist
<code>
if not page.ispostback then
' fyll dropplistan
With ddlVal
.Items.Clear()
.Items.Add("Välj")
.Items.Add("Ett")
.Items.Add("Två")
End With
else
' den finns redan fylld via viewstate som håller reda på dess tillstånd, vald post och dess poster
end if
</code>Sv:Dropdownlist
Jag kommer in autopostback subben men bara då jag inte väljer val (”två”) som jag satt via ddlVal.SelectedValue = "Två". Den triggar på val ”Välj” och ”Ett”. Om jag sedan efter ett val av ”Välj” eller ”Ett” väljer tillbaka till ”Tre” så triggas det inte. Hänger du med?Sv: Dropdownlist
Skapas den dynamiskt så måste den skapas om varje gång sidan laddas för att hanteras rätt. Finns den redan i din usercontroll skall det inte vara några problem. Kommer däremot rutinen aldrig till indexchanged om du sätter en breakpoint så har troligen eventet tappats, testa med en till kontroll och se om du kan få det att fungera.