2016-04-20 8 views
1

Ich arbeite mit dem Christoc Module Template und versuche ein Modul mit lokalisiertem Text zu erstellen. Ich habe ein neues User Control TeamList.ascx zum Projekt und zu den App_LocalResources genannt hinzugefügt Ordner Ich habe zwei neue Dateien hinzugefügt:Richtiger Zugriff auf die Ressourcendatei für ein zum DNN-Modul hinzugefügtes Benutzersteuerelement?

TeamList.ascx.resx und TeamList.ascx. fr-CA.resx (für kanadisches Französisch).

Ich kann das Benutzersteuerelement in meiner Ansicht ohne Probleme einschließen, aber wenn das Modul auf der Seite geladen wird, sind alle Orte, die lokalisierten Text enthalten, leer.

Ich habe versucht, indem dem Benutzer die Kontrolle der Registrierung:

<moduleControl> 
    <controlKey>Teams</controlKey> 
    <controlSrc> 
     DesktopModules/LTSC_DashboardModule/TeamList.ascx 
    </controlSrc> 
    <supportsPartialRendering>False</supportsPartialRendering> 
    <controlTitle>Team Control</controlTitle> 
    <controlType>View</controlType> 
    <iconFile /> 
    <helpUrl /> 
    <viewOrder>0</viewOrder> 
    <supportsPopUps>True</supportsPopUps> 
</moduleControl> 

... in der DNN-Manifest-Datei, aber es hat keine Wirkung.

Ich bin mir nicht sicher, was ich hier vermisse. Ich denke, es ist wahrscheinlich etwas Einfaches.

Vielen Dank im Voraus für jede Hilfe.

+0

Versuchen Sie, auf die RESOURCE-Datei zuzugreifen, oder versuchen Sie, die ASCX-Datei auf einer Seite zu laden? –

Antwort

1

Der Zugriff auf die Ressourcendatei erfolgt mithilfe der Lokalisierungsmethoden in DNN. Sie müssen angeben, wie Sie auf die Ressourcendateien verweisen, um letztendlich herauszufinden, was Sie falsch machen.

eine Ressource-Datei hinzufügen ist einfach, eine RESX-Datei erstellen Sie Ihre ASCX Datei

TeamList.ascx Datei eine Ressource passen in App_LocalResources bekommen würde/genannt TeamList.ascx.resx was zu dem Pfad /App_LocalResources/teamlist.ascx.resx

Um diesen Pfad aus Code zugreifen hinter Sie einfach

var stringValue = Localization.GetString("STRINGNAME.Text", LocalResourceFile) 

nennen würde Wo LocalResourceFile von PortalModuleBase vererbt wird (Sie müssen t o Ihre ASCX-Datei erbt die Basisklasse, die meine Templates erstellen, sie erben von PMB, oder Sie können direkt von PMB erben.

es innerhalb der ASCX-Datei Zugriff auf ähnliche Weise durchgeführt werden kann

<%=Localization.GetString("STRINGNAME.Text", LocalResourceFile)%> 

Of aus Kontrollen mit

<asp:label id="SOMEID" ResourceKey="STRINGNAME.Text" runat="server" /> 

Den einzigen anderen möglichen Haken ist, wenn Sie Ihre ASCX-Datei in eine anderen ASCX werden geladen Datei, wenn dies der Fall ist, müssen Sie die Modulkonfiguration an die untergeordnete ASCX-Datei im Codebehind übergeben

Ich mache dies in der DNNSimpleArticle module mit

var mbl = (dnnsimplearticleModuleBase)LoadControl(controlToLoad); 
mbl.ModuleConfiguration = ModuleConfiguration; 
mbl.ID = System.IO.Path.GetFileNameWithoutExtension(controlToLoad); 
phViewControl.Controls.Add(mbl); 

Wird Sie dadurch in die richtige Richtung weisen?

+1

Ja, die Ascx-Datei an eine andere Ascx-Datei zu übergeben ist genau das, was ich gemacht habe. Danke vielmals! – kburlz