Jag har ett formulär med den här koden: Det är för att page_load() ALLTID KÖRS FÖRST. Jo tack, jag kom på det sen=)SelectedItem.Value
<form runat="server">
<asp:dropdownlist id="namn" runat="server"></asp:dropdownlist>
<asp:button onclick="selectchange" runat="server" text="Kolla" />
</form>
och i sub page_load() har jag
namn.DataSource = db.Show("Select * from namn order by id desc")
namn.DataTextField = "Fornamn"
namn.DataValueField = "id"
namn.DataBind()
och så har jag:
Sub selectchange(Sender As Object, E As EventArgs)
response.redirect("person.aspx?id=" & namn.SelectedItem.Value)
response.write(namn.SelectedItem.Value)
end sub
när man väljer ett namn i dropdownen vill jag att man ska komma till en annan sida där man kan läsa mer om den personen men man kommer alltid till samma namn. (det översta i dropdownen.)Sv: SelectedItem.Value
Alltså fast du har valt något i din dropdownlist så överskriver du det värdet när din page_load körs.
Du skall titta på en property som heter Page.IsPostBack. Så skall du se att det löser sig.
- MSv: SelectedItem.Value
Men finns det någon smartare lösning för just det här problemet? Finns ju massor med smarta saker inbyggda i asp.net så det kan ju tänkas att det går att göra bättre.