5 DNN - Kein Strom ModuleId von verschachtelter Benutzersteuerung in benutzerdefinierten Modul erhalten
-
22-07-2019 - |
Frage
Ich schreibe ein benutzerdefiniertes Modul für DNN 5, und ich brauche einen Link „Verwalten“ auf jeder Steuerung im Modul zu sein. Ich habe eine neue Usercontrol ( „ManagerLink“), die von PortalModuleBase erbt, legte meine Link in dieser Kontrolle und ließ, dass die Kontrolle auf allen meine MAIN CONTROLS.
Das Problem ist, dass ModuleId und tabid sind immer -1 in "ManagerLink" verschachtelter Kontrolle. PortalId funktioniert gut, und ich kann eine tabid erhalten, indem PortalSettings.ActiveTab.TabID tun.
-
Warum kann ich nicht bekommen ModuleId und tabid in von "ManagerLink" Kontrolle, auch wenn es von PortalModuleBase erbt?
-
Gibt es eine alternative Methode ModuleId (äquivalent PortalSettings.ActiveTab.TabID)
bekommen
UPDATE 2014:
Gerade gesehen, eine andere Antwort, als die ursprüngliche Art und Weise besser ist (und es akzeptiert).
Wenn Sie mit DNN 6 und früheren Versionen ersetzen ModuleBase
mit PortalModuleBase
Lösung
Ich wollte nur hier meine 2 Cent hinzuzufügen, mit der Antwort von @ römisch-m ist und sich auf sie,
Ich konnte es in der verschachtelten Kontrolle selbst tun wie folgt:
//fires first in the sequence, calling initialise components
override protected void OnInit(EventArgs e)
{
InitializeComponent();
base.OnInit(e);
}
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);
//this binds a handler to the parent's init event
this.Parent.Init += new EventHandler(this.Parent_Init);
}
//the handler gets called, at this point we can cast the parent as a module base
//and load the configuration and resource file into the nested control
private void Parent_Init(object sender, System.EventArgs e)
{
this.ModuleConfiguration = ((ModuleBase)this.Parent).ModuleConfiguration;
this.LocalResourceFile = ((ModuleBase)this.Parent).LocalResourceFile;
}
Das bedeutet, dass in dem Page_Load
Fall der verschachtelten Kontrolle wird es bereits die Konfiguration und die lokale Ressource-Datei auf der Hand hat.
Es bedeutet auch, Sie müssen nicht um die Konfiguration und lokale Ressourcendatei laden in auf alle Eltern Steuerung, die das Kind die Kontrolle exzellent.
Dies funktioniert nur, wenn die Eltern vom Typ Module natürlich
Und noch genauer zu sein, das funktioniert in der Version 7.00.06