Laden...

Website on the fly per Code erstellen

Erstellt von jazefix vor 15 Jahren Letzter Beitrag vor 15 Jahren 1.524 Views
J
jazefix Themenstarter:in
5 Beiträge seit 2009
vor 15 Jahren
Website on the fly per Code erstellen

Hallo zusammen,

ich stehe vor folgendem Problem. Ich habe eine Website erstellt, die aus einer XML-Datei Vorgaben ausliest. Das sind Vorgaben über Parameter, also z.B. kriege ich Informationen, ob es sich um Multi-Value Parameter handelt, die entsprechenden anwählbaren Werte oder Parameter, bei denen nur ein Wert möglich ist. Basierend darauf soll jetzt eine Website erstellt und aufgerufen werden, bei der die entsprechenden Parameter aus Radiobutton-Listen oder Checkbox-Listen auswählbar sind, sowie ein Button, um die Parameter auszuwerten und ein Ergebnis zu liefern. Lässt sich das so on-the-fly machen, eine Website per Code zu erstellen? Gibt es dazu Anleitungen oder ähnliches?

Vielen Dank im voraus

G
131 Beiträge seit 2005
vor 15 Jahren

wenn du mit Website ne HTML-Datei meinst, dann geht das. Eine HTML-Datei ist doch nix weiter als ein Textdokument, was von einem Browser interpretiert wird. Erstell dir ein Template deiner HTML-Datei -> lass das Template einlesen und ersetze Platzhalter mit deinen Parametern

Bsp.:

Template: <html><body><select name="top5" size="3">
{OPTIONS}
</select></body</html>

nun liest du alle Optionen die unter {OPTIONS} gelistet werden sollen, aus deiner XML-Datei aus und bildest daraus nen String:

StringBuilder sb = new StringBuilder()
for(alle Werte ...)
sb.AppendLine("<option>Wert</option>");

und ersetzt am Ende {OPTIONS} mit dem String

43 Beiträge seit 2008
vor 15 Jahren

Hallo,
also meiner Einschätzung nach dürfte das möglich sein. Ich setze jetzt mal voraus, dass du mit ASP.NET arbeitest. Dabei sind ASPX-Seite ja nichts weiter als Textdateien. Also kannst du sie so füllen wie du gern möchtest.
Um dann eine ordntliche Codebasis zu haben, kannst du ja allen "on-the-fly" erstellten Seite die gleiche Code-Behind-Datei geben. Da du, wie du sagest, nur eine RadioButtonList, eine CheckBoxList und einen Button brauchst, sollte das auch noch überschaubar bleiben. Du musst nur darauf achten, dass alle deine Webseiten einheitlich dieselben Namen für die Steuerelemente verwenden.
Ich hoffe die Anregung hat geholfen.
Gruß

dr_d00m

1.433 Beiträge seit 2006
vor 15 Jahren

Ich würde mir eine Control Factory bauen, die Dir für die benötigten Controls diese zurück gibt und dann der Seite mit

 Page.Controls.Add(DeinControl)

hinzufügen.

Vielleicht wäre aber auch MVC ein Weg.

Grüsse
Daniel
Space Profile
Wer nicht fragt, der nicht gewinnt

5.942 Beiträge seit 2005
vor 15 Jahren

Hallo zusammen

Das ist doch gerade die Hauptaufgabe mit ASP.NET, Seiten dynamisch zu erstellen.
Die Frage ob das möglich ist, stellt sich also eigentlich nicht 😉

Du kannst Controls nutzen, selber welche schreiben, dynamisch hinzufügen, etc... alles was dir beliebt.

Anleitungen in dem Sinne gibts nicht, das Gebiet ist riesig. Ich denke mit ein paar Artikel im Internet und ausprobieren kommst du schon weit.
Vorneweg schon als "Warnung", du solltest kein Response.Write(<Inhalt>) verwenden, wieso:

Wenn du noch Fragen hast, musst du schon konkreter werden.

Gruss Peter

--
Microsoft MVP - Visual Developer ASP / ASP.NET, Switzerland 2007 - 2011

J
jazefix Themenstarter:in
5 Beiträge seit 2009
vor 15 Jahren

Zunächst mal vielen Dank für die Antworten bisher. Da meine Skills, was Programmierung angeht, erst noch am aufkeimen sind 😃 scheint mir der Weg von dr_d00m der einfachste. Eine Beispielseite, wie das Ergebnis aussehen soll habe ich ja bereits. Nur das on-the-fly erstellen ist noch so ne Sache. Außerdem habe ich damit vielleicht weitestgehend das Problem mit dem Design, also der Schminke für die Site gelöst.
Aber wie würde ich denn, wenn ich mir diesen XML-String zusammengebastelt habe, diesen String als Seite aufrufen? In der Informationsbeschaffung bin ich da noch etwas unbedarft. Google mag mich nicht, glaube ich.
Oder was meinen denn andere zu dieser Lösung? Leicht wartbar dürfte der Code ja nicht unbedingt werden, oder?

5.942 Beiträge seit 2005
vor 15 Jahren

Hallo jazefix

Wenn ich den Vorschlag von dr_d00m richtig verstanden habe, ist das Mist.
ASPX-Dateien werden von Hand bzw. mit dem Designer verändert, nicht on-the-fly erstellt.

Für sowas gibt es die Möglichkeiten von ASP.NET.

Gruss Peter

--
Microsoft MVP - Visual Developer ASP / ASP.NET, Switzerland 2007 - 2011

J
jazefix Themenstarter:in
5 Beiträge seit 2009
vor 15 Jahren

Ich hab jetzt dran gedacht einfach eine Site zu erstellen, mit ca 20 Checkbox-Listen, 20 Radiobutton-Listen, usw. Die werden dann je nach Bedarf auf Visible=true gesetzt oder so ähnlich. Das dürfte auch den Zweck erfüllen, oder?

5.942 Beiträge seit 2005
vor 15 Jahren

Hallo jazefix

Wenn das ausreicht ist das die beste und schnellste Lösung.
Ansonsten musst du dich wohl oder übel mit dynamischen Controls befassen.
D.h. auch mal danach suchen, das hatten wir schon ein paar Mal.

Das Thema ist aber relativ schwierig, daher würde ich eine einfachere Lösung vorziehen.

Gruss Peter

--
Microsoft MVP - Visual Developer ASP / ASP.NET, Switzerland 2007 - 2011