Frage zu WebUserControl

robb

Mitglied
Nabend zusammne, hab mal wieder ne Frage. Merke schon, bringe hier ordentlich Stimmung rein ;)

Also folgende Situation:

Ich hab einen index.aspx und in dem befinden sich mehrere Tabellen.
In einigen Tabellen befinden sich WebUserControls. Also werden im Endeffekt in den Tabellen anstatt der WebUserControls Buttons (aber das wisste ihr ja ;) ) externe ascx Seiten ausgegeben.

So was ich nun will ist, dass ich vielleicht per Querry String die Pfade der ascx dateien ändern kann. Also das ich für meine ganze Website "index.aspx" benutzen kann und per link (z.b. "index.aspx?site=links") lediglich die WebUserControls auf der aspx Seite ändere. Sinn ist, dass ich bei kleinen Design änderungen nicht gleich alle Seiten ändern muss.

Also ich hoffe (denke) mal ihr könnt mir da bestimmt ein wenig weiterhelfen.
Für weitere Fragen stehe ich gerne zur Verfügung.

Grüße

PS: BIN ANFÄNGER
 
Hallo.

Habs mal verschoben, da es im falschen Forum war. ;)
Schau mal in den Thread "web usercontrols" von wani, dort könnte eine hilfreiche Antwort sein.

Mfg,
Alex
 
Wenn ich das richtig verstanden habe, sollte es eigentlich kein großes Problem sein.

Du benutzt für jedes UserControl einen Placeholder:

Code:
protected System.Web.UI.WebControls.PlaceHolder platzhalter;

Beim laden der Seite fragst du dann den Querystrig ab:
Code:
switch (Request.QueryString["site"])
	{
		case "seite1":
			platzhalter.Controls.Add(this.LoadControl("seite1.ascx"));
			platzhalter.DataBind();
			break;
			
		case "seite2":
			platzhalter.Controls.Add(this.LoadControl("seite2.ascx"));
			platzhalter.DataBind();
			break;

		usw...
	}

Du kannst das ganzr natürlich auch mit einer if Abfrage machen, und gibst den dazugehörigen Dateien dann eben den Namen des Querystrings und lädst diese dann. Das wäre natürlich kürzer und einfacher.
 
DataBind musst du nicht aufrufen, und du kannst in einen PlaceHolder mehrere Controls laden. Ist vergleichbar mit einem Panel bei WindowsForms.
 
Zurück