Hvordan opretter jeg dynamisk serverkontroller og placerer disse på siden. Altså hvis jeg fx. skal have x antal tekstfelter stående på siden ud fra et databaseopslag. Grunden til at det skal være serverkontroller og ikke almindelig html er at jeg skal have nogle requiredFieldvalidators på disse. Så det er også en del af spørgsmålet, altså hvordan jeg laver et tekstfelt-serverkontrol dynamisk, binder en requiredFieldvalidator på og putter den ind i en table jeg har stående på min aspx-side. Jeg bruger altså ikke noget med absolutte positioner....
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
hvad med noget i denne stil : (hvis du skulle ligge inde med en datakilde du kan iterere over... f.eks. en tabel i et dataset... her har jeg bare brugt nogle strings).
protected HtmlForm Form1;
private void Page_Load(object sender, System.EventArgs e) { // Put user code to initialize the page here string[] strings = {"hej","med","dig"};
foreach(string s in strings) { l = new Label(); l.Text = s; tb = new TextBox(); tb.ID = s; req = new RequiredFieldValidator(); req.ErrorMessage = "Farveller der"; req.ControlToValidate = tb.ID;
tr = new TableRow();
cell = new TableCell(); cell.Controls.Add(l); tr.Cells.Add(cell);
cell = new TableCell(); cell.Controls.Add(tb); tr.Cells.Add(cell);
cell = new TableCell(); cell.Controls.Add(req); tr.Cells.Add(cell);
tbl.Rows.Add(tr); }
Form1.Controls.Add(tbl); }
Jeg angiver her selv et ID, og det skal du sørge for er unikt... Alternativt skal du vente med at smide dine validators ind - indtil du er sikker på at have et unikt id på dine tekstbokse (sker når de klaskes ind i kontroltræet).
Hallløøj Snepnet :) Manden jeg gerne ville se herinde :D Mmm jeg tænkte på...når du skriver Form1.Controls.Add(tbl); Hvorhenne på siden bliver denne så tilføjet? Skal den ikke bindes sammen med et tag på aspx-siden, der indikerer tabellens position i forhold til resten af elementerne på siden?
hej bumle :o) du bør have en serverside form i din aspx-fil. hvis du vil tilgå den fra koden laver du bare en dekleration i toppen: protected HtmlForm Form1; // det er vigtigt at navnet er identisk med det der står i aspx-filen.
På den måde kan du så lave den jeg skrev - altså Form1.Controls.Add(...);
Kontrollerne vil så bare optræde på formen i den rækkefølge du sætter dem ind.
Alternativt kan du sætte f.eks. et panel ind... Det kan du gøre i din aspx-fil, og der placere den hvor du har lyst.
Dette skulle gerne give dig en dekleration som nedenstående i din code-behind :
protected Panel Panel1; // eller hvad du nu har kaldt panelet i designeren.
Så kan du tilskrive den kontroller ved : Panel1.Controls.Add(...);
Princippet er her det samme... de vil optræde i den rækkefølge de indsættes.
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.