【问题标题】:how to use portal skin in modules with multiple ascx files in DNN如何在 DNN 中具有多个 ascx 文件的模块中使用门户皮肤
【发布时间】:2015-07-09 10:17:04
【问题描述】:

我对使用多个 ascx 文件的模块有疑问。 加载模块时看起来一切正常,加载了正确的皮肤,但是当我导航到模块内的不同 ascx 文件时,皮肤变为管理员皮肤,我无法绕过它。

我需要所有带有 viewtype: "view" 的 ascx 文件来获取 portalskin 而不是默认的 adminskin。 有办法解决这个问题吗? 请帮忙!

【问题讨论】:

    标签: dotnetnuke dotnetnuke-module


    【解决方案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 中加载的内容的首选方法(允许其他模块保留在页面中)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-05-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多