zoukankan      html  css  js  c++  java
  • skin.vb中关于页面中模块加载的原理 dodo


    主要工作都在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)

  • 相关阅读:
    linux基础学习-14.3-第四关考试题
    linux基础学习-14.2-命令补充(4)
    linux基础学习-14.1-定时任务练习题
    引入jason依赖
    模糊查询sql语句
    多行删除操作
    分页助手依赖引入
    在web.xml文件中读取spring-security.xml配置文件
    spring-security框架引入依赖
    安全框架配置文件(spring-security.xml)
  • 原文地址:https://www.cnblogs.com/zgqys1980/p/684283.html
Copyright © 2011-2022 走看看