Avatar billede ameq Nybegynder
21. oktober 2004 - 09:35 Der er 18 kommentarer og
1 løsning

Dropdowns i asp.net

Hej
Jeg sider lige og leger med noget asp.net og jeg har to dropdowns men jeg kan ikke rigtig finde ud af hvordan de fungerer for jeg ville meget gerne havde en list af obj i dem. Så når jeg trykker submit så kan jeg bruge et af de obj som min bruge nu har valgt i dropdown. Kan man smide en "liste" af obj ind i en dropdown??
og hvordan viser man så et rigtig navn på obj?
Avatar billede repsak Nybegynder
21. oktober 2004 - 10:54 #1
Umiddelbart vil du få kaldt ToString() på alle dine objekter som du lægger i listen. Du kan ikke opbevare objekter direkte i dropdownlist såvist jeg kan forstå på doc'en
Avatar billede ihtezaz Praktikant
21. oktober 2004 - 11:05 #2
du kan f.eks. brug DataTextField til at vise toString() fra dit objekt.
Skal du f.eks. ud fra den valgte objekt udføre noget andet, kan du passende brug DataValueField, der kan indeholde et entydig værdi (ID) på dit objekt.
Avatar billede ihtezaz Praktikant
21. oktober 2004 - 11:07 #3
Det kan selføgelig gøres efter du har givet DataSource til din DropDownlist, og kaldet databind på dropdownlisten
Avatar billede ameq Nybegynder
21. oktober 2004 - 12:04 #4
Det kan selføgelig gøres efter du har givet DataSource til din DropDownlist, og kaldet databind på dropdownlisten <- se det er noget som jeg tror jeg kan bruge... kan du komme med et eks.?
Avatar billede ihtezaz Praktikant
21. oktober 2004 - 12:37 #5
Jo da. Hvis du f.eks. har en DataSet med data fra din database, kan det gøres således:
ddl.DataSource = DataSetObj;
ddl.DataTextField = "Colonne navn"; //den kollonne du vil vise i dropdownlisten
ddl.DataValueField = "ID"; // Med id'en kan du så bestemme entydigt hvilken item i din dropdownlist blev valgt, og udføre noget på baggrund af dette.

ddl.DataBind(); // bind sourcen til dropdownlisten
Avatar billede ihtezaz Praktikant
21. oktober 2004 - 12:38 #6
Hvis du istedet bruger DataReader, skal du bare skrifte DataReader ud med dataset.
Avatar billede snepnet Nybegynder
21. oktober 2004 - 13:38 #7
en DropDownList "huser" ListItems, så du kan gøre sådan her :

foreach(ListItem li in someDropDownList)
{
  string text = li.Text;
  string value = li.Value;
}

og du kan fylde den på samme måde hvis du vil :

// bare array for at illustrere :
string[] someStrings = {"hej","med","dig"};

foreach(string s in someStrings)
{
  ListItem li = new ListItem(s,s);
  someDropDownList.Items.Add(li);
}

du kan ikke smide hvilket som helst objekt ind i listen - ikke når det er web-kontrollen vi snakker om.

(det er bare skrevet herude, så der kan godt være fejl).

mvh
Avatar billede snepnet Nybegynder
21. oktober 2004 - 13:39 #8
Og denne er :

// bare array for at illustrere :
string[] someStrings = {"hej","med","dig"};

foreach(string s in someStrings)
{
  ListItem li = new ListItem(s,s);
  someDropDownList.Items.Add(li);
}

giver det samme resultat som

// bare array for at illustrere :
string[] someStrings = {"hej","med","dig"};

someDropDownList.DataSource = someStrings;
someDropDownList.DataBind();

mvh
Avatar billede ameq Nybegynder
21. oktober 2004 - 14:07 #9
jeg bruger en arraylist
Avatar billede ameq Nybegynder
21. oktober 2004 - 14:10 #10
jeg har fået det til at virker TAK FOR DET kommer i med et svar?
Avatar billede snepnet Nybegynder
21. oktober 2004 - 14:11 #11
Spørger du om jeg vil skrive et eksempel på at lave en løkke over elementerne i sådan en ?
mvh
Avatar billede snepnet Nybegynder
21. oktober 2004 - 14:11 #12
ahh... du fik lige postet noget der :o)
Avatar billede snepnet Nybegynder
21. oktober 2004 - 14:12 #13
ok - svar her hvis du brugte noget af mit :o)
mvh
Avatar billede snepnet Nybegynder
21. oktober 2004 - 14:12 #14
svar :oD
Avatar billede ameq Nybegynder
21. oktober 2004 - 19:58 #15
men snepnet du kan måske hjælp mig med et andet program når jeg laver autopost back er der en mulighed for at den kan vælge den optionen som lige er blivet valgt?
Avatar billede snepnet Nybegynder
21. oktober 2004 - 20:02 #16
jeps - det klarer den selv hvis du undlader at databinde der hver gang... f.eks. sådan her :

// i page_load
private void Page_Load(object sender, System.EventArgs e)
{
  if(!IsPostBack)
  {
    string[] someStrings = {"hej","med","dig"};
    someDropDownList.DataSource = someStrings;
    someDropDownList.DataBind();
  }
}

Så sørger du for at data bliver klasket ind i listen når brugeren ser siden første gang... hvis du så ikke har slået viewstate fra på enten siden eller kontrollen - så skal den nok huske hvad der er valgt.

mvh
Avatar billede snepnet Nybegynder
21. oktober 2004 - 20:02 #17
(du skal så sørge for at databinde den igen hvis datagrundlaget ændrer sig :o)
Avatar billede ameq Nybegynder
22. oktober 2004 - 10:18 #18
HJÆLP!!!!

Som skrivet har jeg er jeg igagn med at lave et skole projket.
Og som skrivet bruger jeg en arraylist

Jeg har lavet denne her metode til at tilfoeje i min arraylist
        public void Tilfoej_Valuta(double Kurs, string Kurs_navn, string Kurs_land)
        {
            Valuta_Kurs _ny_valuta = new Valuta_Kurs(this._kurs_id_nr, Kurs, Kurs_navn, Kurs_land);
            arrliste.Add(_ny_valuta);
            _ny_valuta = null;
            _kurs_id_nr++;           
        }
Det virker fint fint hvis jeg kalder på den i Page_load med hvis jeg laver en knap og så vil vil kører metoden så virker så tilføjer den ikke noget i mit array

        private void Button1_Click(object sender, System.EventArgs e)
        {
            double _kurs = Convert.ToDouble(TextBox1.Text);
            string _kurs_navn = TextBox2.Text;
            string _kurs_land = TextBox3.Text;
           
            _valuta_manager.Valuta_Kurs_Liste.Tilfoej_Valuta(_kurs, _kurs_navn, _kurs_land);

            Response.Write("<big>SDFGD</big>");
        }

Hvis jeg så udskriver en count på et arraylist for bliver den 0

Jeg opretter mit arraylist uden for min Page_load så jeg kan godt til gå den i alle meotederne...
Avatar billede ameq Nybegynder
22. oktober 2004 - 10:35 #19
Har fået løst det, en af min klasse sagde at jeg skal bruge en session til at holde på mit arraylist
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