浏览:331 2008-07-07 17:41 来自 【组长】Baldwin      :

如何在非页面/模块的实体类里边获取到一些基本的DNN信息, 比如PortalId, UserId, ModuleId, 如果你在模块开发过程中某一个UserControl继承了PortalModuleBase,这些属性是可以直接从父类PortalModuleBase得到的,可是如果你想在实体类或其他非继承PortalModuleBase的地方得到这些信息,那你得熟悉DNN的一些API,包括一些可以直接使用的静态类方法一般是在命名空间DotNetNuke.Common.Globals下,因为这些静态方法已封装了逻辑, 比如GetCurrentPortalSettings就是直接从HttpContext获取到对象PortalSettings, 而PortalId就是对象PortalSettings的数据库主键属性, 那具体是如何操作呢?以下提供了一些参考代码:
Dim _PortalSettings As DotNetNuke.Entities.Portals.PortalSettings = DotNetNuke.Entities.Portals.PortalController.GetCurrentPortalSettings
Dim _PortalId As Integer = _PortalSettings.PortalId

Dim _UserID As Integer = DotNetNuke.Entities.Users.UserController.GetCurrentUserInfo.UserID
Dim _TabID As Integer = _PortalSettings.ActiveTab.TabID

Dim mc As New DotNetNuke.Entities.Modules.ModuleController
'_ModuleId一般是DNN实体类的一个基本属性
Dim _ModuleConfiguration As DotNetNuke.Entities.Modules.ModuleInfo = mc.GetModule(_ModuleId, _TabID)
Dim _TabModuleID As Integer = _ModuleConfiguration.TabModuleID

'有时我们可以需要经常访问这些信息或模块设置信息,这时可以考虑封装所有设置项到一个基类里,分别对应到该类的属性,并考虑将该类进行缓存,如此一来可方便模块信息的获取及其相关操作!
Dim _Settings As HashTable = DotNetNuke.Portals.PortalSettings.GetTabModuleSettings(_
New Hashtable(mc.GetModuleSettings(_ModuleId)), _
New Hashtable(mc.GetTabModuleSettings(_TabModuleID)))

收藏 楼主
  3个月前  West      :
实在感谢啊。从一开始什么都不懂,到现在渐渐有了点感觉,就是从这些代码中生成出来的。。
1楼 回到顶楼 
  3个月前 【组长】 Baldwin      :
呵呵,能让你们收益是我的福分... Cheer up
2楼 回到顶楼 
  3个月前  West      :
如果继承PortalModuleBase, UserID 也可以直接this.UserID.获取。
3楼 回到顶楼 
  3个月前 【组长】 Baldwin      :
没错,因为这都是父类PortalModuleBase的基本属性
4楼 回到顶楼 

注册用户登录后才能回复,登录注册
> 返回“研究DNN,拥抱开源”


其他话题

相关内容

相关链接

1 7647