ASP.NET problem z DropDownList_SelectedIndexChanged

0

Witam. Mam problem z DropDownList w ASP.NET, wypełniam go sobie danymi z bazy, dokładnie to nazwami krajów a wygląda to tak:

 
String query = "SELECT id_kraju AS ID, nazwa_kraju AS KRAJ FROM kraj";
con.Open();
MySqlDataAdapter dat = new MySqlDataAdapter(query, connStr);
con.Close();
DataSet ds = new DataSet();
dat.Fill(ds);

DropDownList1.DataSource = ds;
DropDownList1.DataTextField = "KRAJ";
DropDownList1.DataValueField = "ID";
DropDownList1.DataBind();

no i ok wszystko się ładnie pięknie wyświetla ale problem pojawia się w momencie kiedy chcę wykorzystać zdarzenie SelectedIndexChanged, cokolwiek bym nie wybrał z tej listy to i tak zawsze zwróci mi wartość pierwszego elementu. Czy wie ktoś może dlaczego tak się dzieje i jak to można obejść? Dodam że korzystam z bazy MySQL i VS2010.
Pozdrawiam

0

Pokaż kod miejsca, w którym pobierasz ten element.
Zapewne próbujesz go pobrać po ponownym wypełnieniu DropDownList danymi, które odbywa się przy każdym ładowaniu strony. (To chyba najczęstszy błąd w tej technologii.)

0

Pobieram tak:

     protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
    {
        if (DropDownList1.SelectedIndex != -1)
        {
            //int id = Int32.Parse(DropDownList1.SelectedValue.ToString());
            string id = DropDownList1.SelectedItem.ToString();
            Label2.Text = id;
        }
    }
0

Krzysiek, to nie tak się robi ;]

0

A ten kod wypełniający z pierwszego posta gdzie masz? W jakiej metodzie/zdarzeniu?

0

w Page_Load

0
gruby555 napisał(a):

w Page_Load

Ale nie w if(!Page.IsPostBack)?

0

nie, do wypełnienia używam zwykłego try'a w Page_Load

ok dobra dorzuciłem przed wypełnieniem

if (!Page.IsPostBack) 

i już działa tak jak powinno, dzięki za podpowiedź :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1