Avatar billede websphere Nybegynder
07. juni 2005 - 12:59 Der er 20 kommentarer og
1 løsning

DropDownBox værdi (WebForm)

Jeg har på min side en dropdownbox sammen med en række andre felter. Jeg fylder data i den således:

DDBTypes.DataSource = types.DefaultView;
DDBTypes.DataValueField = "TypeID";
DDBTypes.DataTextField = "TypeDescription";
DDBTypes.SelectedIndex = j;
DDBTypes.DataBind();

Men når jeg så får svar tilbage er der ikke noget svar:

DDBTypes.SelectedIndex = -1
DDBTypes.SelectedValue = ""

Nogen ideer til hvad jeg gør forkert?

På forhånd tak
Avatar billede spif2001 Nybegynder
07. juni 2005 - 13:05 #1
Nu er jeg ikke webprog., men kan det have noget med sessionen at gøre - skal det ikke gemmes via sessionen?
Avatar billede websphere Nybegynder
07. juni 2005 - 13:08 #2
Nej ikke i dette tilfælde, jeg skal jo have den valgte værdi i tilfælde af den er ændret.
Avatar billede dr_chaos Nybegynder
07. juni 2005 - 13:18 #3
har du registreret en eventhandler på dropdown boxen ?
Avatar billede dr_chaos Nybegynder
07. juni 2005 - 13:20 #4
altså this.DDBTypes.SelectedIndexChanged +=new EventHandler(DDBTypes_SelectedIndexChanged);
Avatar billede dr_chaos Nybegynder
07. juni 2005 - 13:20 #5
hvad værdi har j ?
Avatar billede websphere Nybegynder
07. juni 2005 - 13:21 #6
Nej det har jeg ikke - hvordan?
Avatar billede websphere Nybegynder
07. juni 2005 - 13:25 #7
Det er den valgte værdi - mellem 0 og 4
Avatar billede websphere Nybegynder
07. juni 2005 - 13:26 #8
Altså tidligere valgte. For at det er den sidst valgte der er aktiv i listen.
Avatar billede websphere Nybegynder
07. juni 2005 - 13:27 #9
Hvad skal jeg gøre i DDBTypes_SelectedIndexChanged?
Avatar billede dr_chaos Nybegynder
07. juni 2005 - 13:28 #10
ok det du skal gøre er i codebehind filen:
først lav ny metode
private void MyOwnInitialization()
{
}

I den metode som Vs.net designeren laver der hedder "override protected void OnInit(EventArgs e)"
placerer du et kald til MyOwnInitialization() lige efter InitializeComponent(); kaldet
Avatar billede dr_chaos Nybegynder
07. juni 2005 - 13:29 #11
når du har gjort det  tilføjer du denne linie:
this.DDBTypes.SelectedIndexChanged +=new EventHandler(DDBTypes_SelectedIndexChanged);
i MyOwnInitialization() metoden sådan her:

private void MyOwnInitialization()
{
this.DDBTypes.SelectedIndexChanged +=new EventHandler(DDBTypes_SelectedIndexChanged);
}
Avatar billede dr_chaos Nybegynder
07. juni 2005 - 13:33 #12
så skal du lave en ny metode:
private void DDBTypes_SelectedIndexChanged(object sender, EventArgs e)
{

}

det er i ovenstående metode at du kan fange et selected index.
du kan evt vise det i et label eller tekstbox
Avatar billede dr_chaos Nybegynder
07. juni 2005 - 13:36 #13
du skal også sikre dig at der en protected dropdownlist kaldet DDBTypes i toppen af code behind filen.
Avatar billede websphere Nybegynder
07. juni 2005 - 13:40 #14
Det er gjort, men der er ingen forskel...

Altså listen fremstår som den skal på siden, med indhold i både textfield og value...

Hvilken forskel skulle ovenstående gøre?
Avatar billede websphere Nybegynder
07. juni 2005 - 13:45 #15
Ups så ikke lige den sidste....

Er det virklig nødvendigt - det virker meget omstændigt. Er der nogen grund til at man ikke bare kan bruge selectedValue?
Avatar billede dr_chaos Nybegynder
07. juni 2005 - 14:12 #16
du er nødt til at lave et postback på siden ellers serveren ikke registrerer at der er ændret en værdi i dropdownlisten
Avatar billede dr_chaos Nybegynder
07. juni 2005 - 14:14 #17
derfor skal der en eventhandler på
Avatar billede websphere Nybegynder
07. juni 2005 - 14:44 #18
Nu virker det... Og dog!

Hvis jeg opretter værdier og tekster i feltet uden at bruge det fra databasen virker det uden problemer..

Men ikke med data fra databasen.

Hvorfor mon ikke?
Avatar billede dr_chaos Nybegynder
07. juni 2005 - 14:58 #19
hvis du smider data ned i databasen skal du lave et kald til databasen for at opdaterer din dropdownliste.
f.eks.

public void opdaterdropdown()
{
//datahentes
DDBTypes.DataSource = types.DefaultView;
DDBTypes.DataValueField = "TypeID";
DDBTypes.DataTextField = "TypeDescription";
DDBTypes.SelectedIndex = j;
DDBTypes.DataBind();
}

altså præcis den samme måde som du binder data til dropdownmenuen i første omgang.
Avatar billede dr_chaos Nybegynder
15. juni 2005 - 13:53 #20
lykkedes det ?
Avatar billede websphere Nybegynder
11. august 2005 - 18:17 #21
Lukker
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