Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[C#,ASP.NET2]Dynamische button in DataList

Pagina: 1
Acties:

  • Razr
  • Registratie: September 2005
  • Niet online
Ik heb nu een datalist, daarin worden dus een aantal rijen weergegeven vanuit een database. Per rij verschijnt er een dropdown menu met een aantal waarden die ook weer uit de database komen (gaat goed).

Wanneer iemand nu een van deze waarden selecteerd komt deze waarde in een label te staan die óók in dezelfde row van de datalist zit. Klik iemand hierna weer een waarde aan dan komt deze ook weer terug in deze label etc.

Per waarde in de label moet er ook een button komen om deze waarde weer te laten verdwijnen. Stel iemand selecteerd een waarde in de dropdown list; deze komt in de label maar het was de verkeerde waarde...

Dit is nu dus het selectionchanged event van de dropdownlist
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
   {
            DropDownList dll = (DropDownList)sender;
            if (dll.SelectedValue != null)
            { 
                //de knop maken
                Button btn = new Button();
                btn.OnClientClick = "verwijderExtra_Click";
                btn.Text = "X";
                btn.ForeColor = System.Drawing.Color.Red;
                btn.CommandArgument = dll.SelectedValue;

                //rij & kolommen maken
                TableRow tr = new TableRow();
                TableCell tc1 = new TableCell();
                TableCell tc2 = new TableCell();
                //vullen
                tc1.Text = dll.SelectedItem.Text;
                tc2.Controls.Add(btn);
                tr.Cells.Add(tc1);
                tr.Cells.Add(tc2);                

                //Label maken en alles in label zetten
                Label txt = (Label)dll.Parent.FindControl("extraLbl");
                txt.Controls.Add(tr);
            }   
   }
  


Voor een gedeelte werkt het goed, wanneer ik een regel selecteer uit de dropdownlist verschijnt er een regel in mn label met een knopje erachter. Wanneer ik echter opnieuw een regel kies, wordt de al geplaatste regel in mijn label vervangen door de nieuwe geselecteerde regel uit de dropdownlist :o

Zelfs wanneer ik een waarde selecteer uit een andere dropdownlist (uit een andere row van mn datalist) verdwijnt de waarde en komt hij bij de andere row tevoorschijn?!

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 14:23

gorgi_19

Kruimeltjes zijn weer op :9

Probleem is dat je een postback genereert met een button, die in de nieuwe request niet meer bestaat (immers, je bind maar 1 keer (in de eerste request); in de tweede request is je controlcollection anders en bestaat je button niet meer)

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • Razr
  • Registratie: September 2005
  • Niet online
Hmm oke.. Hoe zou jij dit oplossen? Of moet je nu alles in de Page_PreInit gaan uitlezen en dan weer koppelen? :S

  • frosty1878
  • Registratie: Juli 2001
  • Laatst online: 04-07 09:29
Een template maken, daarin de controls plaatsen, controls invisible maken wanneer ze niet actief zijn (groeperen met bv. een panel om in 1 keer te doen) en visible wanneer ze geactiveerd worden.

-- keep it clean


  • Razr
  • Registratie: September 2005
  • Niet online
frosty1878 schreef op vrijdag 27 juli 2007 @ 15:16:
Een template maken, daarin de controls plaatsen, controls invisible maken wanneer ze niet actief zijn (groeperen met bv. een panel om in 1 keer te doen) en visible wanneer ze geactiveerd worden.
Maar je weet nooit van te voren hoeveel buttons er komen te staan. Wanneer iemand 3x het event van de dropdownlist activeerd dan komen er bijv 3 buttons.

  • frosty1878
  • Registratie: Juli 2001
  • Laatst online: 04-07 09:29
bijhouden bij iedere postback welke waardes er geselecteerd zijn per ddl in bijvoorbeeld ViewState. Dan dynamisch een template (ITemplate class) in elkaar zetten.

-- keep it clean


  • Razr
  • Registratie: September 2005
  • Niet online
Ik werk trouwens met de standaard AJAX componenten, maar dit maakt geen verschil in de evt. oplossing ?
Pagina: 1