15. februar 2007 - 17:32Der er
10 kommentarer og 1 løsning
Dynamisk oprettelse af knapper i ASP.NET
Hej Vil gerne oprette et bestemt antal knapper på basis af antal rekker i en databaseforespørsel, har derfor lagt ind følgende kode til dette: <% for (int i = 0; i < antallnyheter; i++) { %> <tr> <td> <asp:Button /> </td> <tr> <% } %>
Dernest ønsker jeg at gemme en eller anden form for unik værdi på hver knap, således at dens OnClick event kan pege på den respektive række, derfor har jeg forsøgt at lægge til følgende kode, men uden at få det ønskede resultat:
<asp:Button id="Button<%= index %>" />
Men id bliver til "Button<%= index %>" i stedet for f.eks. "Button 1"
Er åben for ALLE mulige løsninger på dette problemet!
Hvis du skal gøre det rigtigt skal du gøre det fra codebehind. F.eks.
Table t = new Table(); for (int i = 0; i < antallnyheter; i++) { TableRow tr = new TableRow(); TableCell tc = new TableCell(); Button B = new Button(); B.ID= "Button_"+i.ToString(); tc.Controls.Add(B); tr.Cells.Add(tc); } t.Add(tr);
Du laver en <asp:placeholder id="plc" runat="Server" />
for at bruge den gør du sådan her: Table t = new Table(); for (int i = 0; i < antallnyheter; i++) { TableRow tr = new TableRow(); TableCell tc = new TableCell(); Button B = new Button(); B.ID= "Button_"+i.ToString(); tc.Controls.Add(B); tr.Cells.Add(tc); } t.Add(tr); plc.Controls.Add(t);
OK... det var jo nemt... så er jo spørgsmålet hvordan man kan få koblet et onclick event på den?! og endnu vigtigere... hvordan man får fat i den enkelte knap! Troede ikke det var så svært at finde ud af...
Table t = new Table(); for (int i = 0; i < antallnyheter; i++) { TableRow tr = new TableRow(); TableCell tc = new TableCell(); Button B = new Button(); B.ID= "Button_"+i.ToString(); /*ADDED*/ B.Click += new EventHandler(HandleClick); tc.Controls.Add(B); tr.Cells.Add(tc); } t.Add(tr);
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.