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.

  1. Warum kann ich nicht bekommen ModuleId und tabid in von "ManagerLink" Kontrolle, auch wenn es von PortalModuleBase erbt?

  2. Gibt es eine alternative Methode ModuleId (äquivalent PortalSettings.ActiveTab.TabID)

  3. 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

War es hilfreich?

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

Andere Tipps

William Severance von

scroll top