skin vb中關於頁面中模組載入的原理

2021-04-21 01:32:39 字數 1549 閱讀 6817

主要工作都在page_init實現

1。首先載入controlpanel

ctlpane.controls.add(objcontrolpanel)

2.isadmincontrol() =true ( 本質就在於ctl=null 或者 moduleid =null)

就載入module主頁面。主頁面和其他頁面的區別就在與controlkey=null

3.isadmincontrol() =false

就根據controlkey取該模組該key所對應的ascx

樣式表的應用順序

1.default.aspx:managestylesheets()

default.css

skin.css

*sinname*.css

portal.css

2.skin.vb: injectmodule()

container.css

*containername*.css

skin和container載入的過程

1。在default.aspx的page_init():   skinplaceholder.controls.add(ctlskin)

2。在skin.vb的page_init():

首先:從資料庫得到module的存放位置,並在當前的skin.ascx中找到對印的panel dim parent as control = me.findcontrol(objmodule.panename)

接著:injectmodule(parent, objmodule, portalsettings)

3.  injectmodule(其中 parent = objpane):

找到容器

ctlcontainer = loadcontainer(objmodule.containersrc, objpane)

向容器的內容部分加入module

找到容器中的放module的cell

dim objcell as control = ctlcontainer.findcontrol(glbdefaultpane)

把module放入乙個臨時的panel

objpanel.controls.add(objportalmodulebase)

把臨時的panel放入容器的contentpanel

objcell.controls.add(objpanel)

把容器加入道objpane

生成乙個領事的容器panel,並把容器加入道這個領事的panel中

dim ctldragdropcontainer as panel = new panel  objpane.controls.add(ctldragdropcontainer)   ctldragdropcontainer.controls.add(ctlcontainer)

把容器加入道

objpane.controls.add(ctlcontainer)

最後處理action

processactioncontrols(objportalmodulebase, ctlcontainer)

關於頁面中DOCTYPE標籤

語法 html 頂級元素 可用性 註冊 組織 型別 標籤 定義 語言 url 可能值 頂級元素 指定 dtd 中宣告的頂級元素型別。這與宣告的 sgml 文件型別相對應。html 預設。html。可用性指定正式公開識別符號 fpi 是可公開訪問的物件還是系統資源。public 預設。可公開訪問的物件...

關於html中頁面布局

當頁面中既有又有文字時,可使用 標籤,設定錶行表元 可使文字和出現在同一行,但由此方法設定的頁面布局存在一定的侷限性,長和寬不方便設定,對內容進行分塊操作時也不太好操作,因此會用 css層疊樣式表來設定頁面,設定不同div的id以及class類,在css中分別對每個板塊進行操作,這樣設定的頁面即美觀...

關於Python模組中 init

區分乙個含有python指令碼的資料夾和python包 可以執行import package操作的資料夾 的標誌就是看,這個資料夾下有沒有 ini py檔案,當乙個資料夾下有這個檔案,你可以進行匯入相關操作,但是如果這個資料夾沒有這個檔案,那麼python直譯器是沒有辦法去執行import操作的,直...