Avatar billede burningice Nybegynder
11. november 2002 - 23:29 Der er 5 kommentarer og
1 løsning

Jeg fatter minus ang. DropDownList.SelectedItem

Jeg har en DropDownList på min hjemmeside, hvor jeg henter dataerne ud fra en database og binder til controllen. Det virker fint nok og det bliver fint vist på hjemmesiden.

Jeg har så sat autopostback til, så når jeg vælger et andet punkt bliver der lavet postback, og rutinen Index_Changed bliver kaldt

i denne rutine henter jeg så valuen ud med

string strvalue = DropDownList.SelectedItem.Value;

problemet er bare at lige meget hvad jeg vælger bliver den ved med at sætte valuen for det første punkt in i strvalue
Avatar billede odegaard Nybegynder
12. november 2002 - 00:26 #1
det er ikke fordi at du binder data til dropdownlist i Page_load? Page_Load bliver jo kaldt før Index_Changed, hvorfor du risikerer at ændre SelectedItem før nu når at læse den.
Derfor skal du have en betingelse i din page_load der siger noget i stil med
  if(!Page.IsPostBack()) { ... } "
Avatar billede burningice Nybegynder
12. november 2002 - 00:37 #2
daaah.. man kan ikke se skoven for bare træer ;) tusind tak for det.. jeg skal vist snart iseng :S ;)
Avatar billede burningice Nybegynder
12. november 2002 - 00:47 #3
okay, et sidste spørgsmål, her til sidst...

jeg har min dropdownlist som jeg binder på denne måde

        myDDL.DataSource = objCommand.ExecuteReader(CommandBehavior.CloseConnection);
        myDDL.DataTextField = "type";
        myDDL.DataValueField = "type";
        myDDL.DataBind();

Er det muligt at tilføje en linje til den, evt. med noget DataTable til datasourcen før det bliver bindet?
Avatar billede burningice Nybegynder
12. november 2002 - 01:02 #4
hehe... fandt ud af det.. men fuck hvor er det meget ekstracode :S kan det passe at det er sådan man gør??

OleDbDataReader objDataReader = objCommand.ExecuteReader(CommandBehavior.CloseConnection);
       
        DataTable dt = new DataTable();
        DataRow dr;
       
        dt.Columns.Add(new DataColumn("Type", typeof(string)));
       
        dr = dt.NewRow();
       
        dr[0] = "Alle kategorier";
       
        dt.Rows.Add(dr);
       
        while (objDataReader.Read()) {
            dr = dt.NewRow();
           
            dr[0] = objDataReader[0].ToString();
           
            dt.Rows.Add(dr);
        }
       
        DataView dv = new DataView(dt);   
               
        myDDL.DataSource = dv;
        myDDL.DataTextField = "type";
        myDDL.DataValueField = "type";
        myDDL.DataBind();
Avatar billede odegaard Nybegynder
12. november 2002 - 08:34 #5
hvad med tilføje til myDDL istedet for til datasættet ?
Avatar billede burningice Nybegynder
12. november 2002 - 09:52 #6
kan du evt. komme med et eksempel??
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester