如何显示和取消显示 DNN 模块
How to Show And UnShow DNN module
我刚开始在我的模块开发中遇到这个问题,我需要向专家请教。
我的问题是,根据我在配置文件属性中提供的自定义字段的值,在 DNN7 中显示和取消显示模块的(最佳)方式可能是什么。
我需要这样的东西:
if(customfield == "somevalue")
{
module1.show;
}
如何实现?
谢谢,
您可以做的最简单的事情是围绕模块视图的 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);
}
}
我刚开始在我的模块开发中遇到这个问题,我需要向专家请教。 我的问题是,根据我在配置文件属性中提供的自定义字段的值,在 DNN7 中显示和取消显示模块的(最佳)方式可能是什么。 我需要这样的东西:
if(customfield == "somevalue")
{
module1.show;
}
如何实现?
谢谢,
您可以做的最简单的事情是围绕模块视图的 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);
}
}