2016-04-20 1 views
1

Je travaille avec le modèle de module Christoc, en essayant de créer un module avec du texte localisé. J'ai ajouté un nouveau contrôle utilisateur appelé TeamList.ascx au projet et aux App_LocalResources dossier que j'ai ajouté deux nouveaux fichiers:Comment accéder au fichier de ressources d'un contrôle utilisateur ajouté au module DNN?

TeamList.ascx.resx et TeamList.ascx. fr-CA.resx (pour le français canadien).

Je peux inclure le contrôle utilisateur à mon avis sans problème, mais lorsque le module se charge sur la page, tous les espaces contenant du texte localisé sont vides.

Je avoir a essayé l'enregistrement du contrôle utilisateur en incluant:

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

... dans le fichier manifeste DNN, mais il n'a pas d'effet.

Je ne suis pas sûr de ce qui me manque ici. Je pense que c'est probablement quelque chose de simple.

Merci d'avance pour toute aide.

+0

Êtes-vous en train d'essayer d'accéder au fichier RESOURCE ou essayez-vous de charger le fichier ASCX sur une page? –

Répondre

1

L'accès au fichier de ressources s'effectue à l'aide des méthodes de localisation dans DNN. Vous aurez besoin de poster comment vous référencez les fichiers de ressources pour finalement comprendre ce que vous faites mal.

Ajout d'un fichier de ressources est simple, créez un fichier RESX pour correspondre à votre fichier ASCX

TeamList.ascx obtiendrait un fichier de ressources dans App_LocalResources/appelé TeamList.ascx.resx qui déterminent la trajectoire /App_LocalResources/teamlist.ascx.resx

Pour accéder à ce chemin de code derrière, vous appelez simplement

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

Où LocalResourceFile est héritée de PortalModuleBase (dont vous avez besoin t o faites en sorte que votre fichier ASCX hérite de la classe de base créée par mes modèles, qu'ils héritent de PMB ou que vous puissiez hériter directement de PMB.

y accéder à partir du fichier ASCX peut être fait de la même

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

de l'intérieur des contrôles avec

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

Le seul autre potentiel de capture est si vous chargez votre fichier ASCX dans un autre ASCX fichier, si c'est le cas, vous devez passer la moduleconfiguration au fichier ASCX enfant dans codebehind

Je le fais dans le DNNSimpleArticle module avec

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

Est-ce que cela vous permet de pointer dans la bonne direction?

+1

Oui, passer le fichier ascx à un autre fichier ascx est exactement ce que je faisais. Merci beaucoup! – kburlz