在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
今天主要是想搞清楚,网站是怎么样根据PortalCfg.xml里的配置信息来更改页面,实现这种灵活配置的功能的.主要涉及到的文件有配置文件及相关的架构和数据集文件(PortalCfg.xml, PortalCfg.xsd, PortalCfg.cs),Global.asax,Configuration.cs这几个文件,然后就是根据具体的页面来看里面到底是怎么在工作的(DesktopPortalBanner.ascs, 和DesktopDefault.aspx). 看过之后也觉得不是很难,主要描述如下: 1. 客户端发起一个请求后, BeginRequest事件被触发,Global类里的Application_BeginRequest方法执行,这个方法首先获得Url中传的两个参数tabIndex(页面导航控件中,标签在DataList中的索引.主要是确定选择了哪个链接,然后会让该链接失效,即不能在本页面点击本页面的链接)和tabID(这个就是标签的ID了). 然后是根据这两个参数,获得一个PortalSettings对象,这个对象就包含了请求的标签连接中所有的配置信息,还获得SiteConfiguration 对象(xml配置文件的处理类的实例), 并将这个对象存放在HttpContext.Current.Items中,以便其他地方使用起来很方便.(以前没这样用过!) 2. 以DesktopDefault.aspx页面为例,通过下面的代码实现动态的加载页面模块.
// Obtain PortalSettings from Current Context
PortalSettings portalSettings = (PortalSettings) HttpContext.Current.Items["PortalSettings"]; //. // Dynamically Populate the Left, Center and Right pane sections of the portal page }
else里面的缓存功能是如何实现的,我还没有搞清楚!!郁闷~~~~~~~ 就这样动态加载页面模块的功能实现了,现在终于对这个功能有所了解了!!! 哦~~~~~~~对了,今天还看了角色身份认证的实现,里面竟然还有Bug,郁闷~~~~~~ 这个实现得也很简单. 明天准备具体的看代码,但也不会很仔细的看,只是大致看看,学习一些编程技巧和补充自己的知识吧!! |
请发表评论