我在DNN中拥有父控件和子控件。 当我尝试在子控件的页面加载事件上获取moduleId时,我得到-1。 以下是儿童控制的代码。
Globals.NavigateURL(PortalSettings.ActiveTab.TabID, "PlanSponsorManager", "mid=" + ModuleId);
请建议我如何获得moduleId
答案 0 :(得分:3)
加载子控件时,需要执行以下操作
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);
设置模块配置很重要
来自http://dnnsimplearticle.codeplex.com/SourceControl/latest#cs/View.ascx.cs
的示例答案 1 :(得分:0)
我认为您的子控件继承自PortalModuleBase。不过,我认为使用这种类型控件的ModuleId属性会返回-1,因为它不是扩展数据库中的声明控件。 我想你可以尝试使用“Parent.ModuleID”来获取父PortalModuleBase。