当前位置:  开发笔记 > 编程语言 > 正文

DNN 5 - 无法从自定义模块中的嵌套用户控件获取当前ModuleId

如何解决《DNN5-无法从自定义模块中的嵌套用户控件获取当前ModuleId》经验,为你挑选了1个好方法。

我正在为DNN 5编写自定义模块,我需要一个"管理"链接,以便在模块中的每个控件上.我创建了一个新的UserControl("ManagerLink"),它继承自PortalModuleBase,将我的链接放入该控件,并将该控件放在所有主要控件上.

问题是ModuleId和TabId在"ManagerLink"嵌套控件中始终为-1.PortalId工作得很好,我可以通过PortalSettings.ActiveTab.TabID得到一个TabId.

    为什么我不能从"ManagerLink"控件中获取ModuleId和TabId,即使它继承自PortalModuleBase?

    是否有另一种获取ModuleId的方法(相当于PortalSettings.ActiveTab.TabID)

更新2014年:

刚刚看到另一个答案,它比原来更好(并接受它).

如果您使用的是DNN 6及更早版本,请替换ModuleBasePortalModuleBase



1> roman m..:

来自DNN论坛的 William Severance 为我回答了这个问题,我也会在这里发布答案.

由于子控件继承自PortalModuleBase,我将在父控件的Page_Load处理程序中执行以下操作

注意:假定ManagerLink是对子控件的引用

VB.NET:

With ManagerLink
    .ModuleConfiguration = Me.ModuleConfiguration
    .LocalResourceFile = Me.LocalResourceFile
End With
C#:
protected void Page_Load(System.Object sender, System.EventArgs e)
{
    ManagerLink.ModuleConfiguration = this.ModuleConfiguration;
    ManagerLink.LocalResourceFile = this.LocalResourceFile
}

上面允许子控件使用父级的ModuleConfiguration(包括ModuleId)和LocalResourceFile进行任何本地化.

推荐阅读
重庆制造漫画社
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有