15. maj 2002 - 11:43Der er
5 kommentarer og 1 løsning
Dynamisk'e knapper!
Jeg generer en liste med en masse knapper, jeg vil gerne kunne klikke på de knapper og kalde en function i codebehind med en parameter fra knappen, hvordan gør jeg det ?
Det er ikke så kringlet endda... nedenstående skulle virke fint.
//Opret en knap med en eller anden tekst Button btn = new Button(); btn.Text="SomeText"; //Tilknyt handler... jeg har kaldt funktionen fncButtonHandler btn+=new System.EventHandler(this.fncButtonHandler); //lad knappen afsende et argument btn.CommandArgument="SomeArgument"; //du skal så indsætte kontrollen (knappen) i formen på siden. this.Controls[1].Controls.Add(btn);
Opret handlerfunktionen således: private void fncButtonHandler(object sender, System.EventArgs e) { //her kan du så gøre hvad du vil, og argumentet kan du hente sådan her: string btnArg=((Button) sender).CommandArgument.ToString(); }
Der er ingen problemer med at køre det der indsætter knappen i et loop, så du kan få alle de knapper ind på siden du vil.... argumentet kan så selvfølgelig tilpasses den enkelte knap.
haha... bedre sent end aldrig :o) du skal huske at det er += new System.EventHandler (du har refereret det uden "new"). Jeg er ikke sikker på hvad du mener med dit sidste spørgsmål.... Der er ikke rigtig andre muligheder end det jeg har skrevet til dig (du kan slå op i msdn under events og delegates, der er en del uddybende forklaringer).
Hvis du i designeren trækker en knap ind på en webform og dobbeltklikker på den, får du automatisk lavet det samme i din code-behind... du kan kigge i funktionen private void InitializeComponent()
Der vil du kunne se præcis den samme kode som jeg har skrevet til dig.
lol... jo selvfølgelig, men det er nu ikke en property... det er et event.
Synes godt om
Ny brugerNybegynder
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.