Avatar billede decrypto Nybegynder
13. april 2005 - 22:57 Der er 12 kommentarer og
1 løsning

Problemer med databind med dropdownlist

Jeg har problemer med at lave dropdownlist. Når jeg bruger nedenstående kode....

            foreach(CategoryData c in CategoryArray)
            {
                dr = dt.NewRow();
               
                dr[0] = c.Name.ToString();
                dr[1] = c.Id.ToString();

                dt.Rows.Add(dr);
            }

Får jeg en dropdownlist hvori der står...

<option value="System.Data.DataRowView">System.Data.DataRowView</option>

Hvad gør jeg galt? Hvis jeg binder til et datagrid så får jeg ingen problemer, og data er korrekt, men det skal jo en ien dropdownlist.
Avatar billede burningice Nybegynder
13. april 2005 - 23:04 #1
har du husket at sætte ValueField og TextField på din DrowDownList??
Avatar billede decrypto Nybegynder
13. april 2005 - 23:12 #2
Her er resten af min kode...

            DataTable dt = new DataTable();
            DataRow dr;

            dt.Columns.Add(new DataColumn("Name", typeof(String)));
            dt.Columns.Add(new DataColumn("Id", typeof(String)));
           

            foreach(CategoryData c in CategoryArray)
            {
                dr = dt.NewRow();
               
                dr[0] = c.Name.ToString();
                dr[1] = c.Id.ToString();

                dt.Rows.Add(dr);
            }

            categoryDrpDwnList.DataSource = dt;
            categoryDrpDwnList.DataBind();


Kan du give et eksempel. Jeg har ellers fulgt et eksempel fra nettet.
Avatar billede decrypto Nybegynder
13. april 2005 - 23:15 #3
Hovsa... det er vel ikke dt.Columns.Add jeg skal bruge men dt.Rows.Add
Avatar billede burningice Nybegynder
13. april 2005 - 23:15 #4
categoryDrpDwnList.DataValueField = "Id";
categoryDrpDwnList.DataTextField = "Name";
Avatar billede burningice Nybegynder
13. april 2005 - 23:16 #5
men.. hvorfor smide dine data over i en DataTable først? hvorfor ikke binde dit array direkte til dropdownlisten?

categoryDrpDwnList.DataValueField = "Id";
categoryDrpDwnList.DataTextField = "Name";
categoryDrpDwnList.DataSource = CategoryArray;
categoryDrpDwnList.DataBind();
Avatar billede decrypto Nybegynder
13. april 2005 - 23:19 #6
Jeg tænkte nok at jeg havde et ligegyldigt mellemled, jeg prøver lige din versio...
Avatar billede decrypto Nybegynder
13. april 2005 - 23:20 #7
Sådan nu virker det. Smid bare et svar ind...så du kan få points.
Avatar billede decrypto Nybegynder
13. april 2005 - 23:23 #8
Hvis jeg nu vil have en 'default' tekst ind fx - vælg - hvordan skriver jeg skrive det ???
Avatar billede burningice Nybegynder
14. april 2005 - 07:43 #9
en default text? hvad mener du?
Avatar billede decrypto Nybegynder
14. april 2005 - 10:21 #10
jeg mener en text der ligger øverst som option, hvor der fx. står - VÆLG FARVE -.
Avatar billede burningice Nybegynder
14. april 2005 - 10:33 #11
:).. ja, så skal du enten tilføje denne fiktive option til din CategoryArray eller droppe databinding og manuelt tilføje alle dine items til dropdownlisten:

1)

CategoryArray.AddAt(0, new CategoryData("- Vælg Farve -", ""));
categoryDrpDwnList.DataValueField = "Id";
categoryDrpDwnList.DataTextField = "Name";
categoryDrpDwnList.DataSource = CategoryArray;
categoryDrpDwnList.DataBind();

2)

categoryDrpDwnList.Items.Add(new ListItem("- Vælg Farve -"));
foreach (CategoryData c in CategoryArray) {
  categoryDrpDwnList.Items.Add(new ListItem(c.Name, c.Id));
}
Avatar billede decrypto Nybegynder
14. april 2005 - 13:48 #12
2) Virkede kun ved at tilføje .ToString() på elementerne

categoryDrpDwnList.Items.Add(new ListItem("- Vælg Farve -"));
foreach (CategoryData c in CategoryArray) {
  categoryDrpDwnList.Items.Add(new ListItem(c.Name.ToString(), c.Id.ToString()));
}

Tak for hjælpen...

2)

categoryDrpDwnList.Items.Add(new ListItem("- Vælg Farve -"));
foreach (CategoryData c in CategoryArray) {
  categoryDrpDwnList.Items.Add(new ListItem(c.Name, c.Id));
}
Avatar billede burningice Nybegynder
14. april 2005 - 14:12 #13
ja, det er rigtigt at begge argumenter skal være af typen string, og jeg kunne af gode grunde ikke vide hvilke typer CategoryData.Name og .Id havde.
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