如何在DNN中具有多个ascx文件的模块中使用门户网站皮肤

时间:2015-07-09 10:17:04

标签: dotnetnuke dotnetnuke-module

我遇到使用多个ascx文件的模块的问题。 加载模块时所有看起来都很好,加载了正确的皮肤但是当我导航到模块中的另一个ascx文件时,皮肤会变为管理皮肤而我无法解决它。

我需要使用viewtype:“view”的所有ascx文件来获取portalskin而不是默认的adminskin。 是在那里绕过这个吗? 请帮忙!

1 个答案:

答案 0 :(得分:1)

我选择解决这个问题的方法是让我的模块加载ASCX文件,而不是让DNN使用各种ControlKey参数来做。

我的DnnSimpleArticle模块是如何执行此操作的一个很好的示例http://dnnsimplearticle.codeplex.com/

View.ascx文件基本上由占位符

组成
<asp:PlaceHolder ID="phViewControl" runat="server" />

该控件的代码隐藏执行加载

try
{
    var controlToLoad = "Controls/ArticleList.ascx";
    if (ArticleId > 0)
    {
        controlToLoad = "Controls/ArticleView.ascx";
    }

    var mbl = (dnnsimplearticleModuleBase)LoadControl(controlToLoad);
    mbl.ModuleConfiguration = ModuleConfiguration;
    mbl.ID = System.IO.Path.GetFileNameWithoutExtension(controlToLoad);
    phViewControl.Controls.Add(mbl);
}
catch (Exception exc) //Module failed to load
{
    Exceptions.ProcessModuleLoadException(this, exc);
}

这是我完全控制DNN中加载内容的首选方法(允许其他模块保留在页面中)