如何在 DNN 中具有多个 ascx 文件的模块中使用门户皮肤
how to use portal skin in modules with multiple ascx files in DNN
我对使用多个 ascx 文件的模块有疑问。
加载模块时一切看起来都很好,加载了正确的皮肤,但是当我导航到模块中的另一个 ascx 文件时,皮肤更改为管理皮肤,我无法绕过它。
我需要所有 viewtype 的 ascx 文件:"view" 来获取 portalskin 而不是默认的 adminskin。
有办法解决这个问题吗?
请帮助!
我选择解决这个问题的方法是让我的模块加载 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 中加载的内容(允许其他模块保留在页面中)
我对使用多个 ascx 文件的模块有疑问。 加载模块时一切看起来都很好,加载了正确的皮肤,但是当我导航到模块中的另一个 ascx 文件时,皮肤更改为管理皮肤,我无法绕过它。
我需要所有 viewtype 的 ascx 文件:"view" 来获取 portalskin 而不是默认的 adminskin。 有办法解决这个问题吗? 请帮助!
我选择解决这个问题的方法是让我的模块加载 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 中加载的内容(允许其他模块保留在页面中)