Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

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

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.

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

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.