Avatar billede krestionsen Nybegynder
23. juli 2004 - 09:59 Der er 22 kommentarer og
1 løsning

sætte en dropdownlist lig med en værdi fra database

Jeg har en dropdownlist, som får sine værdier fra et dataset, men når brugeren skal rette i dropdownlisten, skal den gerne stå på den værdi som brugeren valgte sidst, som står i access databasen?
Avatar billede snepnet Nybegynder
23. juli 2004 - 10:23 #1
Du kan gøre det med noget i stil med nedenstående.

this.SelectedIndex = this.Items.IndexOf(Items.FindByText(string));
this.SelectedIndex = this.Items.IndexOf(Items.FindByValue(string));

Men du kan også bruge en lykke :

foreach(ListItem li in someDropDown.Items)
{
  if(li.Text == something)
      li.Selected = true;
}
Avatar billede krestionsen Nybegynder
23. juli 2004 - 11:35 #2
Jeg kan ikke rigtigt få det til at virke, jeg har prøvet følgende kode:

private void Button1_Click(object sender, System.EventArgs e)
        {
            ListItem li = new ListItem();
            for(int i = 0; i > DropDownList1.Items.ToString(); i++)
            {
                if(li.Text == "1")
                {
                    li.Selected = true;
                }
            }
        }
Avatar billede snepnet Nybegynder
23. juli 2004 - 11:45 #3
Får du ikke en kompilerfejl på den her :
for(int i = 0; i > DropDownList1.Items.ToString(); i++)

Den bør se sådan her ud :
for(int i = 0; i < DropDownList1.Items.Count; i++)
Avatar billede krestionsen Nybegynder
23. juli 2004 - 14:03 #4
Jo, jeg får compiler fejl på den.

Jeg har prøvet det du sagde, men den sætter den ikke lig med den valgte, det er først når jeg trykker på dropdownlisten og sætter den lig med 1, at den er true, men det skulle gerne sætte den lige så snart jeg trykker på knappen?

ListItem li = new ListItem();
for(int i = 0; i < DropDownList1.Items.Count; i++)
{
    if(li.Text == "1")
    {
    li.Selected = true;
    }
               
}
Avatar billede snepnet Nybegynder
23. juli 2004 - 14:13 #5
Øhh... det var lidt sort :
"det er først når jeg trykker på dropdownlisten og sætter den lig med 1, at den er true, men det skulle gerne sætte den lige så snart jeg trykker på knappen"

Er der tale om to forskellige "knappen" ?
Avatar billede krestionsen Nybegynder
23. juli 2004 - 14:17 #6
nej, jeg har en dropdownlist og en knap, hvor du kan se koden til knappen oven over.
Avatar billede krestionsen Nybegynder
23. juli 2004 - 14:18 #7
Gav det mening eller skal jeg forklare det mere?
Avatar billede krestionsen Nybegynder
23. juli 2004 - 14:23 #8
Her er koden, det skulle gerne være sådan, at når jeg trykker på Button, så bliver nr. 1 vist.

private void Button1_Click(object sender, System.EventArgs e)
        {
            ListItem li = new ListItem();
            li.Text = DropDownList1.SelectedIndex.ToString();
            for(int i = 0; i < DropDownList1.Items.Count; i++)
            {
                if(li.Text == "2")
                {
                    li.Selected = true;
                }
               
            }
        }
Avatar billede krestionsen Nybegynder
23. juli 2004 - 14:25 #9
nr. 1 = nr. 2
Avatar billede snepnet Nybegynder
23. juli 2004 - 14:29 #10
Må jeg se den kode hvor du fylder noget i dropdownboksen ?
Avatar billede krestionsen Nybegynder
23. juli 2004 - 14:32 #11
Here it comes

DropDownList1.DataTextField = "Navn";
DropDownList1.DataSource = mr.visEmne();
DropDownList1.DataBind();
Avatar billede snepnet Nybegynder
23. juli 2004 - 14:36 #12
Giver det dig en dropdownboks, hvor der kun står tal ?
(du spørger på om if(li.Text == "2")... Så skal der vises 2 i dropdownboksen hvis det skal virke)
Avatar billede krestionsen Nybegynder
23. juli 2004 - 14:36 #13
Det er et dataset, som jeg smider ind dropdownboksen.
Avatar billede snepnet Nybegynder
23. juli 2004 - 14:39 #14
Hov.. vi krydsede vist lige der :o) - fik du den her http://www.eksperten.dk/spm/522470#rid4793731
Avatar billede krestionsen Nybegynder
23. juli 2004 - 14:40 #15
Nej, der står bogstaver, det andet var kun et forsøg, indtil jeg vidste om det virkede, det virker måske ikke med tal.
Avatar billede snepnet Nybegynder
23. juli 2004 - 14:44 #16
Jeg forstår ikke lige den med forsøget.... Når du viser siden, og prøver med den kode du har. Står der så tal i dropdownboksen - eller var forsøget at du bare fyldte den op med tal eller ?
(det vil jo kun gå godt hvis du spørger på noget der aktuelt er i dropdownboksen)
Avatar billede krestionsen Nybegynder
23. juli 2004 - 14:47 #17
forsøget var bare at jeg fyldte den op med tal fra 1 til 6 og når jeg trykkede på button'en, hvor koden oven over står, så skulle den vise 2.
Avatar billede snepnet Nybegynder
23. juli 2004 - 14:52 #18
ok :o) fint nok... skulle bare lige være sikker.

Hov... denne her kode :
          ListItem li = new ListItem();
            li.Text = DropDownList1.SelectedIndex.ToString();
            for(int i = 0; i < DropDownList1.Items.Count; i++)
            {
                if(li.Text == "2")
                {
                    li.Selected = true;
                }
               
            }

Skal nok være sådan her :
foreach(ListItem li in DropDownList1.Items)
{
    if(li.Text=="2")
        li.Selected = true;
}
Avatar billede krestionsen Nybegynder
23. juli 2004 - 15:01 #19
Nu har jeg smidt den kode som du gav ind i min button, men nu kommer den med følgende fejl.

System.Web.HttpException: A DropDownList cannot have multiple items selected.
Avatar billede snepnet Nybegynder
23. juli 2004 - 15:03 #20
Det lyder som om du enten har flere steder hvor du angiver et item som selected, eller at du har flere items i dropdownboksen hvor teksten er 2.
Angiver du f.eks. en af dem som selected i aspx-filen ?
Avatar billede snepnet Nybegynder
23. juli 2004 - 15:04 #21
Hvis det sidste er tilfældet kan du sikkert fikse det sådan her :

foreach(ListItem li in DropDownList1.Items)
{
    if(li.Text=="2")
        li.Selected = true;
    else
        li.Selected = false;
}
Avatar billede krestionsen Nybegynder
23. juli 2004 - 15:10 #22
Ja, det virker og tak for hjælpen også denne gang og nok ikke sidste:)
Pointene er dine, husk at lægge et svar.
Avatar billede snepnet Nybegynder
23. juli 2004 - 15:12 #23
Helt fint.... Bare sig til hvis der kommer mere ballade.
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