当我们以管理员的身份登陆后,在每个tab的第一行都会出现一个快速添加模块的表单,其中有一个pane(窗格),我们有三个位置可以选择,分别是LeftPane 、ContentPane、RightPane,默认的一项可以修改components\Globals.vb中的glbDefaultPane变量。

现在我想改变他们,比如说把LeftPane改为左窗格,那么我们可以通过分析admin\skins\admin.ascx文件得知,pane下拉列表表是一个id为cboPanes的dropdownlist控件。而在其中的后台文件我可以找到这段代码


For intItem = 0 To _portalSettings.Panes.Count - 1

                            cboPanes.Items.Add(Convert.ToString(_portalSettings.Panes(intItem)))

                        
Next intItem

可见,dnn是通过_portalSettings.Panes(intItem)来填充dropdownlist控件的。

PortalSettings可以在components\Configuration.vb中找到,在185行我们可以看到PortalSettings类。但是,问题就出在这里,除了Public Panes As New ArrayList外,没有发现其他定义pane的语句。

问题1:pane的dropdownlist数据源从何而来,如何进行更改,比如:把LeftPane改为左窗格,或增加一个FootPane选项。

问题2:以管理员身份登陆后可以看到页面大体分为三列,每列上方分别写有LeftPane 、ContentPane、RightPane三个单词,这三个单词我也同样找不到来源。

希望路过的前辈们能够指点一二,不胜感激。