DNN页面生成的运作方法相当复杂,并非三言两语讲得完整,以下是我所寻到的脉络,希望对研究DNN的朋友们有些帮助,文字毕竟抽象了些,以后我会接着贴出些关键代码来详尽说明。
1,得到Portal和Page信息:
HttpModule是起点,它先截取Http请求,在Application_BeginRequest 事件中,进行Url rewrite处理后得到tabId和portalAliasInfo,通过这两个参数生成一个PortalSettings对象,取得Portal信息和当前的Tab信息。存入Context对象备用。
2,显示Page和Modules:
Default.aspx的Page_init事件里先取得Context对象中的Portal和Tab信息,加载他们所指定的Skin。
在Skin.vb中(a):找出PaneControl; (b): 加载ModuleControl;(c):PaneControl.Controls.Add(ModuleControl)将ModuleControl插入PaneControl.Controls。
最后在触发ModuleControl.Page_Load事件时加载Module中的数据。
时间: 2024-09-29 09:48:47