• 主题简介 ASP .NET


    由控件的外观、样式组成的集合,由一个文件组构成,存放在App_Themes文件夹下。

    主题包括:皮肤文件(.Skin)、CSS文件(.CSS)、图片、其它资源等。

    主题的作用:统一设置Web页面的外观。

    主题与CSS的比较

    相似点           允许定义一组作用于多个页面中的控件的样式特性。

    不同点     主题基于控件而不是HTML  

       主题允许定义和重用几乎所有的控件属性

     CSS只是直接作用于HTML的样式特性

    主题应用在服务器上

       主题作用到页面时,格式化后的最终页面被传送给用户。

       使用样式表时,浏览器同时接收到页面和样式信息并在客户端合并它们。

    不同点     可以通过配置文件来应用主题 不必修改任何一个页面就可以对整个文件及或整个网站应用主题

       主题不会像CSS那样级联 CSS:内联样式优先采用

       主题:主题里定义的值会覆盖控件的属性。可以通过提高页面属性的优先级来改变,这样主题的行为将更像样式表。

    分工协作

       CSS文件:HTML控件和页面的样式属性

       主题:服务器控件的样式属性          皮肤代码中只留样式代码其余都移除

    控件皮肤类型       默认皮肤 应用于同一类型的所有控件 唯一                 已命名皮肤 包含SkinID属性 多个SkinID不重复

    定义默认皮肤

    <asp:TextBox runat="server" BackColor="#8080FF" BorderStyle=“Groove” ForeColor=“Red“ />        *该代码是写在皮肤文件中而不是页面文件中

    这是命名皮肤 

    <asp:TextBox runat="server" BackColor="#8080FF" BorderStyle=“Groove” ForeColor=“Red“  SkinID=“txt1" /> 

    <asp:TextBox ID=“TextBox1" SkinID=“txt1" Runat="server" />   写在网页中

    在页面级别应用主题

    <%@Page   Theme="主题名"  >

    在站点配置文件

    <configuration>

      <system.web>

        <Pages  theme="主题名" />  

      </system.web>

    </configuration>

    主题冲突

      如果控件的属性和主题定义的属性冲突,总是优先使用主题定义的属性

    改变优先级

      <%@Page   styleSheetTheme="主题名"  >

            styleSheetTheme<控件属性<Theme  

    一个ASP.NET页面的生命周期为:  页面事件执行的顺序

    客户端请求页面-->预初始化conPreInit-->初始化conInit-->完成初始化conInitComplete-->载入ViewState(LoadViewState)-->处理回送数据(IsPostBackDataHander)-->Page_OnPreLoad-->Page_OnLoad-->回发更改通知-->处理回发事件-->Page_OnLoadComplete-->预呈现-->完成预呈现-->保存-->保存ViewState-->呈现-->Page_UnLoad

      在第2步就可以进行定义站点主题(Theme)

    动态加载主题:

          Button_Click事件

           Response.Redirect("Default.aspx?Theme=red")

       

        page_PreInit 事件,  这个事件需要自己手动写   //在加载事件前面完成

        if(Request.QueryString["Theme"]!=null)

          string theme=Request.QueryString["Theme"].ToString();

    换主题:   用   DropDownList  控件做

      //确定由哪个控件引发页面回传,记录此控件的唯一标识符

         UniqueID  -->在网页中此控件的ID

            △生成网页时会有(_ _EVENTTARGET)生成       //_ _EVENTTARGET  页面隐藏字段中获取

            string ID=Request.Form["_ _EVENTTARGET"]            //谁引发页面回传就得到谁的ID

           Request.Form[id]               //获取列表值

    自定义控件:封装小部分内容

    母板页:封装大部分相同的内容

                          当有母版页,内容页,自定义控件事件发生顺序

                         内容  》》 母版页   》》 自定义控件

       preInit-->PageLoad-->PageLoad-->PageLoad

  • 相关阅读:
    有关 PHP 和 MySQL 时区的一点总结
    PHP CLI模式下的多进程应用
    Linux编程之:五个常见PHP数据库问题
    用php定制404错误页面 并发信通知管理员
    配置PHP站点安全综合教程
    新手必看的PHP学习入门的一些基础知识
    彻底杜绝PHP的session cookie错误
    专家预言:PHP将比Java更受开发人员欢迎
    PHP企业级应用之WebService续篇
    清除 数据库 日志 以 Db_Test 为例
  • 原文地址:https://www.cnblogs.com/Sea1ee/p/5911120.html
Copyright © 2020-2023  润新知