En add lägger alltid till din kontroll sist i högen av kontroller. Och en repeater innehåller förutom dina kontroller en massa andra kontrollen som den skapar lite hur som helst. Så det enklaste är att använda FindControl som finns på alla control collections..DVS
private void Page_Load(object sender, System.EventArgs e) {
TextBox entextbox=new TextBox();
entextbox.Id = "entextbox"; //sätt id på den så att vi kan hitta den
Repeater1.Controls.Add(entextbox);
}
private void Button1_Click(object sender, System.EventArgs e) {
TextBox entextbox = (TextBox)Repeater1.Controls.FindControl("entextbox");
Ibland kan det vara svårt att veta vart en kontroll finns om den änns finns i den controll collectionen eller i en under den, oftast med en datagrid. Då kan man göra en liten loop för att se hur ens kontroller ser ut
foreach(Control control in Repeater1.Controls){
Response.Write(control.GetType().ToString());
}
så får du ut vilka kontroller som finns var i den.
Lycka till
Visst ja..koden är som vanligt inte testad..bara skriver rakt upp och ner :)
tyvärr kan jag inte använda ID i detta fallet, eftersom jag ska sen göra en loop så jag får ut ett antal textboxar dynamiskt, och då om jag sätter ett ID på den klagar den på att ID:et är multipelt, så det är nog en bättre ide att inte sätta ett ID, och söka på den utan att använda FindControl och istället använda Control[x] eller nåt. uuh Behöver hjälp. Hur gör man då?
Sen vet jag inte riktigt hur du vill få ut dina textboxar antingen vet du vilket x du vill ha och då gör du en FindControl("dynamisktvärdegrej"+x);
Om du vill ha ut alla kan du göra nått i stilen med
foreach(Control control in Repeater.Controls){
try{
TextBox tb = (TextBox)control;
:
//gör saker med varje tb
:
}
catch{
//Oj det var ingen tb (är egentligen inte bra att använda try catch så här, men orkar inte skriva ihop en if-sats med typerna)
}
}
Med reservation att textboxarna kan ligga som banr till nån annan kontroll då man får göra en dubbel loop med alla controls i controls:en
Förresten , vad är det för skillnad på Items och Controls?
Bra fråga.
Jag tror att skillnaden är att controls innehåller även html kontroller, medans items bara innehåller det du databinde med. När det gäller reapeters och datagridar så använder jag nästan alltid uteslutande Control collectionen eftersom jag vill åt headern och den finns itne med i items.
Lite flummig skillnad så jag vet inte rikgtigt, nån annan?
Det ska vara som ett frågeformulär, där det ställs en fråga, och ett antal svarsalternativ i en dropdownlist. Och så fort man klickat på något svarsalternativ i dropdownlisten så ska det genereras en ny fråga med tillhörande svarsalternativ i en dropdownlist. och så håller det på så tills alla frågorna är besvarade.
Men jag har problem med händelsehanteraren, det händer inte ett skvatt när jag man klickar på Dropdownlisten :( även fast jag sätter 2 eventhandlers på den.
Du har en fråga och en dropdownlist med tillhörande svar, varför måste du ha dem i en repeater överhuvudtaget? Jag kanske har missuppfattat dig men räcker det inte med en label som innehåller frågan och en dropdownlist med svarsalternativen och sedan lite kod för att hantera hur frågorna ska rullas ut och svaren sparas?