如何显示和取消显示DNN模块

时间:2015-11-11 15:28:37

标签: c# asp.net dotnetnuke dotnetnuke-7

我刚刚在模块开发中解决了这个问题,我需要向一位专家提出这个问题。 我的问题是,根据我在配置文件属性中提供的自定义字段的值,可能是在DNN7中显示和取消显示模块的(最佳)方式。 我需要这样的东西:

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

如何实现这一目标?

感谢,

1 个答案:

答案 0 :(得分: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);
    }
}