Laden...

Controls als Array?

Erstellt von Golo Roden vor 18 Jahren Letzter Beitrag vor 18 Jahren 1.269 Views
Golo Roden Themenstarter:in
4.207 Beiträge seit 2003
vor 18 Jahren
Controls als Array?

Hallo,

vermutlich eine triviale Frage, aber ich weiß nicht so recht, nach welchen Stichworten ich suchen soll.

Folgende Aufgabe: Auf eine ASPX-Seite sollen 50 Dropdownlistencontrols, die auch alle serverseitig verarbeitet werden müssen. Wie mache ich das geschickter als jetzt per Hand 50 mal das Control zu kopieren, die ID um eins hochzuzählen, und auf dem Server wieder 50 mal den gleichen Code zu schreiben - nur halt jeweils für eine andere ID?

Das muss doch irgendwie einfacher gehen?

Viele Grüße,

Golo

Wissensvermittler und Technologieberater
für .NET, Codequalität und agile Methoden

www.goloroden.de
www.des-eisbaeren-blog.de

P
554 Beiträge seit 2005
vor 18 Jahren

Guten Morgen,

du kannst sie ja in einer Schleife erzeugen:


			for (int i = 0; i < vehicles.Length; i++)
			{
				vehicle = vehicles[i];
				btn = new Button();

				btn.Click += new EventHandler(btn_Click);
				btn.Width = 150;
				btn.ID = vehicle.ID.ToString();
				btn.Text = vehicle.VehicleBez;
				panelVehicles.Controls.Add(btn);
			}

und einem Eventhandler zuweisen:


private void btn_Click(object sender, EventArgs e)
	{
			Button btn = (Button)sender;
	}

Achtung! - Hinter dir ist ein dreiköpfiger Affe!

P
123 Beiträge seit 2006
vor 18 Jahren

Hi,

du kannst das sehr einfach eine Panel erstellen und diesem dann Controls geben. dies geht über Controls.Add!

Über eine Schleife könntest du dir deine DropDownlist erstellen und dem Panel hinzufügen! In der Schleife kannst du dann jeweils auch die Id setzen!

Gruss plongo


Woher soll ich wissen, was ich denke, bevor ich höre, was ich sage!
Kurzum: Läufer sind gesünder, "gescheiter" und glücklicher als Nichtläufer.
www.andreas-nicole.de

3.003 Beiträge seit 2006
vor 18 Jahren

Habt ihr auch ausprobiert, ob die Werte der auf solche Art konstruierten Controls bei einem PostBack auch da sind - die Überprüfung muesste ja stattfinden, NACHDEM der Code die Controls generiert hat, und dann wird's wieder schwierig mit der Wertzuweisung. Unter Framework 1.1 jedenfalls ist das nicht ganz einfach - erstellen ja, aber auch auswerten? Hab zur Zeit ganz ähnliche Probleme.

LaTino

"Furlow, is it always about money?"
"Is there anything else? I mean, how much sex can you have?"
"Don't know. I haven't maxed out yet."
(Furlow & Crichton, Farscape)

Golo Roden Themenstarter:in
4.207 Beiträge seit 2003
vor 18 Jahren

Okay, bei mir läuft's nun einwandfrei - auch mit Postback und allem 🙂.

Benutze allerdings 2.0 ...

Wissensvermittler und Technologieberater
für .NET, Codequalität und agile Methoden

www.goloroden.de
www.des-eisbaeren-blog.de

1.130 Beiträge seit 2005
vor 18 Jahren

Wie LaTino schon geschrieben hat, behält das 1.1 Panel nach einem Postback die zugefügten Controls nicht. Das 2.0 Panel macht das....

P
123 Beiträge seit 2006
vor 18 Jahren

Kannst aber mit der FindControl methode evtl. gut arbeiten...

Gruss plongo


Woher soll ich wissen, was ich denke, bevor ich höre, was ich sage!
Kurzum: Läufer sind gesünder, "gescheiter" und glücklicher als Nichtläufer.
www.andreas-nicole.de

1.130 Beiträge seit 2005
vor 18 Jahren

Original von plongo
Kannst aber mit der FindControl methode evtl. gut arbeiten...

hmm... ich verstehe den Zusammenhang grade nicht

P
123 Beiträge seit 2006
vor 18 Jahren

Wenn du weisst das du eine gleiche Anzahl von Controls hast bzw. zähler, da kannst du einfach innerhalb einer Schleife, auf die Controls zurückgreifen....


for(int i = 0, i >= Index, i++) {
   DropDownlist ddl = (DropDownList) Page.FindControl("ddlid"+i)
}

so ungefährt halt!

Gruss plongo


Woher soll ich wissen, was ich denke, bevor ich höre, was ich sage!
Kurzum: Läufer sind gesünder, "gescheiter" und glücklicher als Nichtläufer.
www.andreas-nicole.de