DNN模块通信示例,学习Event的好代码

DotNetNuke 4.3.5 Skin 中文乱码问题的解决
在制做一个DotNetNuke 4.3.5的Skin的时候,皮肤上面使用了中文字,可放上去后皮肤的中文字却变成乱码了。

解决方法是:
  1. 在Dreamweaver中,点击“修改->页面属性->标题/编码”,修改“编码”为"UTF-8"
  2. 修改web.config中的globalization节如下:
    <globalization culture="zh-CN" uiCulture="zh-CN" requestEncoding="UTF-8"
     responseEncoding
="UTF-8" fileEncoding="UTF-8" />(直接拷贝请去掉回车)

问题的原因就是网页的编码和程序设定的解码方式不一致,一般的DNN帮助文档会要求修改globalization节中的编码方式为GB2312,但这种方式会造成DNN对一些中文的不正常解码。

DNN&Plone建站系统开发(内容)
 用CodeSmith及DNNProjectTemplates进行DNN模块开发(2)

DNN下载之后包括三个内容:Install、Source、StartKit,他们各有不同用途。 Source主要是控件的源代码,主要是为了编译为dll。如果不需要修改DNN的底层控件就不需要修改。 StartKit作用是安装Template,通过Template生成基本的DNN新增模块基本内容,它要配合Install部分
Install是一个基本门户架构,用户可以通过已经安装的Template增加新的Moudle

最完整的DNN 4.X 安装攻略(适合3.X版本) (最新的4.5应该不需要安装数据库这些,因为是直接附加的MDF)
搭建基于ASP.NET 2.0的DNN 4.X模块开发环境及模块实例(2)
使用这个教程基本可以了
使用StartKit出现问题DotNetNuke.vscontent 后来发现是注册表的问题
http://forums.asp.net/p/977602/1249031.aspx
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSEnvCommunityContent\ContentTypes\VSTemplate]
"ClassName"="VSContentInstaller.VSTemplateInstallerPage"
"DisplayName"="#VSTemplateContentDisplayName"



页面跳转的实现
http://www.cnblogs.com/PM_2004/archive/2006/09/11/439036.html
NavigateURL 和 EditUrl的用法和区别及在NavigateURL中传多个值问题

可以看出EditUrl主要用于页面内控件间的跳转ControlKey,可传递参数对KeyName\KeyValue,   如: Response.Redirect(EditUrl("detail"), True)等
而NavigateURL利用Tabid可以在页面间跳转,也可以传递多个参数对,使用范围更广

对于在NavigateURL中传多个参数对问题,我是这么做的:
hypTitle.NavigateUrl = NavigateURL(tabinfo.TabID, Null.NullString, "ItemID=" + itID.ToString(), "CategoryID=" + CategoryList.TrimEnd(","))
要注意格式和写法!

TabController ctlTab = new TabController();

TabInfo objTab 
= ctlTab.GetTabByName("产品");

this.Response.Redirect(Globals.NavigateURL(objTab.TabID), true);

定义了View_Entry Control,可能需要从View Blog中跳转,就可以用EditUrl(“ItemID”,”123”, View_Entry)方法。

同一个模块,不同Control之间的跳动,而且涉及某一个参数的传递,可以使用

EditUrl(KeyName, KeyValue, ControlKey),如果是Edit Control可以省略为

EditUrl(KeyName, KeyValue)