• 从首页看CCS布局


    如何修改CCS的页面布局 相信很多人觉得比较麻烦
    这里就来看看CCS的首页有些什么

    1、加载默认首页布局
    <CS:ContentContainer runat="server" id="MPContainer">
    文件位置:CommunityServerControls\ContentContainer.cs该类继承于MetaBuilders.WebControls.MasterPages.ContentContainer

    用来加载MasterPage(主页布局)的实体类
    首先会访问当前设定的样式风格的(主页控件) 默认为Matser.ascx
    如果不存在~ 则会进一步访问默认风格的主页控件~ 默认风格为Default

    在具体运行过程中。它首先去加载 ~/Themes/当前用户选择的风格名称/Masters/Master.ascx
    如果该文件不存在~ 则会跑去加载~/Themes/Default/Masters/Master.ascx
    如果也不在~ 那就啥都不加载~
     所以当你设定某个风格后
    你又不小心把这个风格的文件夹删除了或者这个风格除了文件夹啥都没有
    首页依然还会有内容输出~ 正式因为他们默认加载的~/Themes/Default/Masters/Master.ascx
    但是由于你当前风格不是Default所以仅能显示页面布局 而不懈怠Default的CCS样式控制
    如果基于默认布局做新皮肤~ 可以新建一种风格的文件夹 然后仅仅添加需要的样式控制和图片就可以了

    关于<CS:ContentContainer runat="server" id="MPContainer">的内部
     public class Region : MetaBuilders.WebControls.MasterPages.Region{}
     public class Content : MetaBuilders.WebControls.MasterPages.Content{}
     public class Form : MetaBuilders.WebControls.MasterPages.NoBugForm {}
    说明了Region  Content  Form  均是继承MetaBuilders公司的MasterPages控件的部分
    大家可以去http://www.metabuilders.com/Tools/MasterPages.aspx下载控件来做研究
    该控件大致分为4个类
    (1)Content: This control contains the content for a particular region
    此类控件包含真实内容
    (2)ContentContainer: This control serves two distincts purposes: - it marks the location where the Master Page will be inserted into the Page - it contains the various Content sections that will be matched to the Master Page's Region controls (based on their ID's).
    此控件有两个意图:
    ·作为一个定位标志,标识Master Page将被插入到页中;
    ·与Region Controls相匹配
    (3)NoBugForm: A server form that does not cause a problem by being inside a master page or other naming container.
    无错form。可以放心使用
    (4)Region: The control marks a place holder for content in a master page
    占位控件

    2加载文件和基本设置
    3.1加载js文件
    <CS:Script Src = "Utility/UpdatePosts.js" runat = "server" />
    文件位于:CommunityServerControls/Script .cs
    文件继承于LiteralControl 表示一个html元素
    他会通过Src属性来定义js文件 并输出<script src=\"{0}/{1}\" type=\"text/javascript\"></script>这样的js引用html语句
    如果Src属性为空 则默认加载Utility/global.js全局js文件

    默认超链接方式设置
    <cs:Base Target="_top" runat="server"/>
    转换输出<base target='_top'/>  这样的标签



    3加载自定义的皮肤控件

    有不少包含了皮肤功能的控件均继承于
    SecureTemplatedWebControl或者TemplatedWebControl.cs两个控件
    SecureTemplatedWebControl继承于TemplatedWebControl而TemplatedWebControl又继承于WebControl, INamingContainer
    TemplatedWebControl控件会通过SkinName属性加载当前风格下的皮肤如果不存在则会加载默认布局的皮肤文件
    SecureTemplatedWebControl除了具备TemplatedWebControl的功能外还有检验当前url的功能用来判断当前访问是否一个基于本站的访问
    在每个皮肤控件对应的类中我们可以通过重构CreateChildControls方法对该控件进行初始化的设置重构AttachChildControls方法
    来对皮肤上的控件对应的变量事件进行设定
    比如首页上的<CS:Login SkinName="Skin-LoginSmall.ascx" runat="server" />
    会去加载Skin-LoginSmall.ascx的布局
    在CommunityServerControls\Login.cs里面我们可以看到该控件的代码
  • 相关阅读:
    Struts 学习之03Controller(控制器 上)
    解决.netFrameWork1.1中事件丢失
    python中的迭代器(iterable)和迭代对象(iterator), type和isinstance
    如何在快速启动栏添加桌面
    使用WebService构建的C/S代码结构示例
    .NET Framework 中的常见命名空间
    多重委托简单示例一
    匿名方法示例之计算器(委托作为参数和返回值)
    委托与事件示例
    批处理文件入门
  • 原文地址:https://www.cnblogs.com/wzyexf/p/362631.html
Copyright © 2020-2023  润新知