DNN模块开发系列文章(4)——与模块开发相关的类
DNN做为一个功能强大的网站框架,它提供了提供了很多有用的类来为开发模块提供方便,以下列出几个和模块开发紧密相关的类: PortalModuleBase 说明:模块基类。所有的模块都是通过该类继承而来。这个类定义了DNN模块所要用到的方法和属性。 命名空间:DotNetNuke.Entities.Modules 文件位置:Components\Modules\PortalModuleBase.vb 常用方法: EditUrl:根据模块定义的ControlKey获取访问相应控件的Url。我们要调用在模块定义中定义的控件都可以通过该方法实现。 重载列表 Public Function EditUrl() As String;默认调用ControlKey=Edit的控件,不传递参数,一般用于新建。 Public Function EditUrl(ByVal ControlKey As String) As String;调用指定ControlKey的控件。 Public Function EditUrl(ByVal KeyName As String, ByVal KeyValue As String) As String;调用ControlKey=Edit的控件,可传递一个名为KeyName值为KeyValue的参数。如编辑文章时,我们就可以通过EditUrl("ArticleID",ArticleID)的方法调用编辑文章的控件 Public Function EditUrl(ByVal KeyName As String, ByVal KeyValue As String, ByVal ControlKey As String) As String;调用指定ControlKey的控件,并传递名为KeyName值为KeyValue的参数。比如:在查看文章时,我们定义一个ControlKey=Show的控件,然后通过EditUrl("ArticleID",ArticleID,"Show")的方法就可以调用文章查看控件了. Public Function EditUrl(ByVal KeyName As String, ByVal KeyValue As String, ByVal ControlKey As String, ByVal ParamArray AdditionalParameters() As String) As String;当有多个参数需要传入控件的话,我们就需要用这个方法。比如:我们在查看控件的时候需要,在传入一个A参数,那么我们可以通过EditUrl("ArticleID",ArticleID,"Show","A=Avalue"),如果还要传递更多参数,可以通过先定义一个string数组,然后将需要传递的参数,存到这个数组中。 如: Dim params(2) As String params(0) = "A=Avalue" params(1) = "B=Bvalue" strUrl = EditUrl("ArticleID",ArticleID,"Show",params) 属性: Actions;模块所具有的操作集合,可以通过实现IActionable接口来定义模块操作,如:添加一个“新建文章”的操作。这些操作将会显示到模块的以下位置: IsEditable;获取当前用户是否有该模块的编辑权限 LocalResourceFile;设置或获取当前控件对应的语言资源文件 ModuleId;获取模块ID PortalAlias;获取当前站点的别名 PortalId;获取当前站点ID Settings;获取模块设置参数集合。我们可以通过设置模块来定义这个模块的相关参数。例如:我们将通过设置模块设置该文章模块列表文章的每页数量。 UserId;获取当前用户ID UserInfo;获取当前用户信息 ModuleSettingsBase 说明:设置模块基类。继承与模块基类,拥有模块基类的所有属性和方法,并对其进行扩充。 命名空间:DotNetNuke.Entities.Modules 文件位置:Components\Modules\ModuleSettingsBase.vb 常用方法: Public Overridable Sub LoadSettings();设置模块需要重写这个方法,用来实现读取模块设置。 Public Overridable Sub UpdateSettings();设置模块需要重写这个方法,用来实现添加更新模块设置。 属性: ModuleSettings;模块参数的设置集合 TabModuleSettings;页面模块参数的设置集合 这里我们要了解DNN中的一个概念才好理解这个两个参数的区别。我们可以在页面中添加一个模块,并且可以我们还可以用添加一个已经存在模块的方法把这个模块添加到其他页面上。象这样添加的模块, |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |