Zum Inhalt springen

UserControl dynamisch laden


Hahne

Empfohlene Beiträge

Hallo,

ich bin gerade am Überlegen wie ich folgendes Problem lösen könnte.

Jeder kennt sicherich CMS Systeme wo man über die Adminseite neue Contentseiten hinzufügen kann. Unter anderem kann man bei diesen CMS (Bsp.: DotNetNuke) auch UserControls beim Editieren auf die Contentseite ziehen. Anschließend speichert man diese Contentseite und wenn man diese nun aufruft sieht man das gerade eben eingefügte Usercontrol (z.B. Newsletterformular).

Genauso wollte ich das jetzt gerne auch programmieren. Und zwar habe ich ein Formular wo ich meien Contentseite erstellen kann. Dieses Formular unterstützt auch BB-Code (Sprich: [FETT]hier wird fett geschrieben[/FETT]) da ich einen Codeparser eingebaut habe. Nun möchte ich hier aber auch die Möglichkeit haben zu sagen, dass ich gerne das Usercontrol ABC einbinden möchte.

Weiss jemand wie man das auf dynamischer Art und Weise lösen kann?

Gruß

Hahne

Link zu diesem Kommentar
Auf anderen Seiten teilen

Du kannst dir auch einfach mal die Klasse DataTemplateSelector anschauen. Der DataContext deiner Contentseite gibt dann halt einfach eine IEnumerable zurück, in der ViewModels (DataContext) der einzelnen Subseiten stehen. Diese wiederum wird als Binding auf ein ItemsControl.ItemSource gesetzt und siehe da, dynamisches Laden.

Link zu diesem Kommentar
Auf anderen Seiten teilen

So für das einbinden habe ich jetzt noch eine andere Idee.

Ich habe nun dort wo die Seite dargestellt werden soll ein PlaceHolder eingefügt. So habe ich die Möglichkeit mein Usercontrol folgendermaßen dynamisch einzubinden:


Control viewControl = LoadControl("~/Module/WebUserControl.ascx");

viewControl.ID = "foobarboo";

PlaceHolder1.Controls.Add(viewControl);

Jetzt habe ich meine Seite ja so gestaltet das ich beim Erstellen einer Contentseite mit sogenannten BB-Code ([FETT]Fett schreiben[/FETT]) arbeiten kann. Es soll also nun beim Erstellen einer Seite möglich sein das ich Text schreiben kann, dann dazwischen ein Usercontrol hinzufügen kann und anschließend, wenn es gewollt ist, noch ein Text einfügen kann. Beispiel:

Das ist einmal ein [FETT]Beispielcode[/FETT] und hier nach soll ein Control eingebunden werde:


[CONTROL]...[/CONTROL]


Nach dem Control kommt noch einmal ein [FETT]Text[/FETT]. Nun ist aber Ende im Gelände! 

Jetzt bin ich am Überlegen wie ich den Text sowie das Control in den Placeholder bekomme. Den Text parse ich ja und schaue was für formatierungen ich dort drin habe. Danach müsste ich nach eingefügten Controls parsen. Aber wie könnte ich das jetzt realisieren, dass ich diese Sachen dem Placeholder hinzufüge. Müsste ja ca. so ausschauen:

Label foo = new Label();

foo.Text = "hier der erste Text";


Control viewControl = LoadControl("~/Module/WebUserControl.ascx");

viewControl.ID = "foobarboo";


Label bar = new Label();

bar.Text = "hier der zweite Text";


PlaceHolder1.Controls.Add(foo);

PlaceHolder1.Controls.Add(viewControl);

PlaceHolder1.Controls.Add(bar);

Hat da jemand von euch eine Idee wie man das realisieren könnte? Mir fällt da kein Algorithmus ein. Danke :)

Gruß

Hahne

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...