2015-11-11 4 views
1

Je viens de voir ce problème dans mon développement de module où je devais le demander à un expert. Ma question est, quelle pourrait être la (meilleure) façon d'afficher et de démonter le module dans DNN7 en fonction de la valeur du champ personnalisé I fourni dans les propriétés du profil. je besoin de quelque chose comme:Comment afficher et démasquer le module DNN

if(customfield == "somevalue") 
{ 
    module1.show; 
} 

comment cela peut-il être atteint?

grâce,

Répondre

2

La meilleure chose que vous pouvez faire est envelopper un panneau autour du contenu html de votre point de vue du module.

<asp:Panel ID="pnlModuleContainer" runat="server"> 

... 

</asp:Panel> 

Puis, dans la codebehind vue du module, faire quelque chose comme ceci:

protected void Page_Load(object sender, EventArgs e) 
{ 
    try 
    { 
     pnlModuleContainer.Visible = false; 
     if (User.Profile.GetPropertyValue("CustomFieldName") == "somevalue") 
     { 
      pnlModuleContainer.Visible = true; 
     } 
     else 
     { 
      DotNetNuke.UI.Skins.Skin.AddModuleMessage(this, "You need 'somevalue' to see this module", 
         DotNetNuke.UI.Skins.Controls.ModuleMessage.ModuleMessageType.BlueInfo); 
     } 
    } 
    catch (Exception exc) //Module failed to load 
    { 
     Exceptions.ProcessModuleLoadException(this, exc); 
    } 
} 
+0

Oh, je ne pensais pas que ce serait juste visible = vrai ou faux que je n'ai pas » essayé celui-ci encore , Je suppose qu'il y a quelque chose que je devrais faire puisque c'est un module. Ma faute! Merci mon pote. – OneLazy