DNN: Verwenden mehrerer Webbenutzersteuerelemente in einem Modul und Anzeigen verschiedener Steuerelemente auf verschiedenen Seiten

8

Ich bin ein DotNetNuke-Neuling. Bitte sei höflich. Ich verwende die Vorlage "DotNetNuke 6 Compiled Module", um mein Modul zu erstellen. Ich habe bereits das View.ascx-Steuerelement im Projekt und ein weiteres Steuerelement namens test.ascx hinzugefügt.

Meine Frage ist: Wie zeige ich unterschiedliche Ansichten auf verschiedenen Seiten, denen ich das Modul hinzufüge. (wenn das überhaupt möglich ist) z.B Zeigen Sie View.ascx auf der Seite default.aspx an und zeigen Sie dann auf der Seite default2.aspx das Benutzersteuerelement test.ascx an?

Wenn das nicht möglich ist, bedeutet das, dass ich für jede ascx-Steuerung verschiedene visuelle Studio-Projekte benötige. Sicher nicht.

    
astro boy 12.09.2013, 04:38
quelle

2 Antworten

13

Astro,

Option 1:

Sie müssen zu Host & gt; Erweiterungen & gt; Bearbeiten Sie Ihre Extension & gt; Erweitern Sie Moduldefinition und klicken Sie auf Steuerelement hinzufügen.

Hier müssen Sie Ihr ascx-Steuerelement auswählen und den Schlüssel als eine beliebige Zeichenfolge angeben. Angenommen, Sie haben den Schlüssel test angegeben, das Benutzersteuerelement und den ausgewählten Steuerelementtyp als view ausgewählt und gespeichert.

Ab jetzt können Sie den folgenden Code verwenden, um zu dem neu hinzugefügten Steuerelement zu navigieren: DotNetNuke.Common.Globals.NavigateUrl(TabId,"test","mid="+ModuleID);

Dadurch wird die Seite umgeleitet und Ihre Seite mit test.ascx geladen.

Sie können diese Art von Option verwenden, wenn Sie view.ascx standardmäßig anzeigen möchten und bei einer Aktion die Ansicht wechseln und test.ascx anzeigen möchten. Nachteil hier ist, wenn Sie zu test.ascx wechseln, werden alle anderen Module, die zur Seite hinzugefügt werden, nicht sichtbar.

Option 2:

Sie müssen eine neue Definition im Modul erstellen. Dazu gehen Sie zu Host & gt; Erweiterungen & gt; Bearbeiten Sie Ihr Modul & gt; Erweitern Sie Module Definitoins & gt; Klicken Sie auf Hinzufügen und fügen Sie eine neue Definition hinzu. Sobald die Definition hinzugefügt wurde, können Sie test.ascx und das Steuerelement der Definition ohne Schlüssel hinzufügen.

Wenn Sie das Modul erneut auf der Seite löschen und hinzufügen, werden zwei Module auf der Seite angezeigt. Dies sind zwei Definitionen. Sehen Sie sich beispielsweise die Definition des Blog-Moduls an, wie mehrere Definitionen funktionieren.

Diese Option wird verwendet, wenn Sie gleichzeitig mehrere Ansichten aus demselben Modul anzeigen möchten.

Ich hoffe, das hilft. Lass es mich wissen, wenn du weitere Fragen hast.

    
Prashant Lakhlani 12.09.2013, 05:02
quelle
9

Ein wenig spät zur Party hier, aber wenn ich Sie richtig verstehe, wollen Sie ein Modul mit verschiedenen Ansichten haben. Um Prashants Methoden hinzuzufügen, sind hier zwei Optionen, die ich oft verwende:

1.) Multiview

%Vor%

Im Code dahinter können Sie die aktive Ansicht basierend auf einer Bedingung festlegen

%Vor%

2.) Platzhalter. Dies ist mein Favorit, da es mir erlaubt, jede Ansicht und ihren Code in ihrer eigenen Kontrolle zu trennen. Sie müssen nur ein Steuerelement (das Master-Steuerelement) mit DNN registrieren. Sie können 10s, 100s, 1000s von untergeordneten Steuerelementen haben, und sie müssen nicht mit DNN registriert werden, da sie im MasterControl.ascx-Platzhalter enthalten sind. Fügen Sie in MasterControl.ascx

hinzu %Vor%

Folgen Sie Prashants Anweisung in Methode 1 und registrieren Sie die MasterControl mit DNN. Fügen Sie im folgenden Code Folgendes hinzu:

%Vor%

Nur eine andere Art, Dinge zu tun. Viel Glück.

    
Moses Machua 15.09.2013 03:41
quelle