Avatar billede mosquito Nybegynder
15. marts 2006 - 13:49 Der er 11 kommentarer og
1 løsning

dropdown glemmer state ved data fra database.

Jeg har flere dropdowns i en usercontrol, men kun én (ddlOrders), giver ikke det ønskede resultat ved 'changes'.

her er udsnit af koden:

protected void Page_Load(object sender, EventArgs e)
{
  if(!Page.IsPostBack)
  {
    FillOrdersDropdown();
  }
}

private void FillOrdersDropdown()
{
ArrayList items = db.GetActiveOrdersList();
  foreach (ListItem order in items)
  {
      ddlOrders.Items.Add(order);
  }
}

protected void ddlOrders_SelectedIndexChanged(object sender, EventArgs e)
        {
                lblInfo.Text = ddlProducts.SelectedItem.Text;
        }


Jeg har AutoPostback=true; EnableViewState=true, og når jeg ændrer i ddlOrders, sker der også en postback, men uden at ddlOrders_SelectedIndexChanged kaldes.

Jeg har sikret mig at ddlOrdersIndexChanged event kalder ddlOrders_SelectedIndexChanged.

Kigger jeg i debug informationerne, er det også ddlOrders event der kastes ved ddlOrders changes.

snip fra debug:
__EVENTTARGET ctl03$ddlOrders
__EVENTARGUMENT

Jeg har forsøgt at tilføje eventen i min page_load, for at sikre mig at den også er i eventlisten for ddlOrders, men stadig samme sker. Postback, og ddlOrders.SelectedValue er stadig 0.

Hvis jeg tilføjer items til ddlOrders manuelt, virker det fint. Men nu er det sådan at ddlOrders skal fyldes fra databasen (db).
Avatar billede mosquito Nybegynder
15. marts 2006 - 13:51 #1
Ups. Jeg beskrev kun problemt og glemte spørgsmålet. Men her kommer det så.

Hvordan får jeg min dropdown til at huske mit viewstate mellem hver postback??
Avatar billede dr_chaos Nybegynder
15. marts 2006 - 16:42 #2
hvordan ser koden til din dropdownliste ud ?
Avatar billede mosquito Nybegynder
15. marts 2006 - 17:04 #3
min dropdownliste er tilføjet ved drag/drop og ligger i "web form generated code" og er derfor ikke tilgængelig, da den er compileret som partial file. Jeg havde forsøgt med en ny dropdownliste ... men fik samme resultat. Fejlen opstår så snart jeg tilføjer ListItems fra databasen. Skriver jeg dem manuelt.. som: ddlOrders.Items.Add(new ListItem("Test","1")... osv. virker det ok.
Avatar billede dr_chaos Nybegynder
15. marts 2006 - 17:06 #4
Skift til html view og paste koden
Avatar billede mosquito Nybegynder
15. marts 2006 - 17:10 #5
<asp:DropDownList ID="ddlOrders" runat="server" onSelectedIndexChanged="ddlOrders_SelectedIndexChanged" AutoPostBack="True">
            </asp:DropDownList>
Avatar billede a1a1 Novice
16. marts 2006 - 05:50 #6
kan det være fordi at du "fylder den op" på page_load? (om der er postback eller ej)
"viewstate" skulle gerne sørge for at den bliver...;o)
Avatar billede a1a1 Novice
16. marts 2006 - 05:52 #7
(hvis du fylder den igen er der ikke nogen ddlOrders.selectedItem (eller hvad den nu hedder))
Avatar billede mosquito Nybegynder
16. marts 2006 - 07:51 #8
a1> den bliver kun fyldt op ved !Page.IsPostBack. Fjerner jeg viewstate er den tom efter postback.
Avatar billede dr_chaos Nybegynder
16. marts 2006 - 08:14 #9
hvor ligger din dropdownliste ?
Avatar billede dr_chaos Nybegynder
16. marts 2006 - 08:15 #10
doh mente selectedindexchanged ?
Avatar billede mosquito Nybegynder
16. marts 2006 - 08:33 #11
selectedindexchanged ligger som en metode i samme class, register.ascx som er navnet på class'n for kodesnippet først i spørgsmålet.
Avatar billede mosquito Nybegynder
17. marts 2006 - 11:57 #12
lukker spørgsmålet. Jeg har valgt at rydde op i koden, så spørgsmålet har ikke længere relevans.
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
Kurser inden for grundlæggende programmering

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