2015-11-11 3 views
1

Я только что решил эту проблему в своей модульной разработке, где мне нужно было спросить об этом у какого-то специалиста. Мой вопрос в том, какой может быть (лучший) способ отображения и неотображения модуля в DNN7 в зависимости от значения настраиваемого поля, которое я предоставил в свойствах профиля. мне нужно что-то вроде:Как показать и открыть модуль DNN

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

, как это может быть достигнуто?

спасибо,

ответ

2

Самый простой, что вы можете сделать, это обернуть вокруг панели HTML содержимого вашей точки зрения модуля.

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

... 

</asp:Panel> 

Затем в коде вашего модуля просмотра, сделайте что-то вроде этого:

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

О, я никогда не думал, что это будет просто Visible = истинным или ложным, хотя я не»пробовал этот еще , Я предполагаю, что есть что-то, что я должен сделать, так как это модуль. Виноват! Спасибо друг. – OneLazy