主题简介 ASP .NET
由控件的外观、样式组成的集合,由一个文件组构成,存放在App_Themes文件夹下。
主题包括:皮肤文件(.Skin)、CSS文件(.CSS)、图片、其它资源等。
主题的作用:统一设置Web页面的外观。
主题与CSS的比较
相似点 允许定义一组作用于多个页面中的控件的样式特性。
不同点 主题基于控件而不是HTML
主题允许定义和重用几乎所有的控件属性
CSS只是直接作用于HTML的样式特性
主题应用在服务器上
主题作用到页面时,格式化后的最终页面被传送给用户。
使用样式表时,浏览器同时接收到页面和样式信息并在客户端合并它们。
不同点 可以通过配置文件来应用主题 不必修改任何一个页面就可以对整个文件及或整个网站应用主题
主题不会像CSS那样级联 CSS:内联样式优先采用
主题:主题里定义的值会覆盖控件的属性。可以通过提高页面属性的优先级来改变,这样主题的行为将更像样式表。
分工协作
CSS文件:HTML控件和页面的样式属性
主题:服务器控件的样式属性 皮肤代码中只留样式代码其余都移除
控件皮肤类型 默认皮肤 应用于同一类型的所有控件 唯一 已命名皮肤 包含SkinID属性 多个SkinID不重复
定义默认皮肤
这是命名皮肤
在页面级别应用主题
<%@Page Theme="主题名" >
在站点配置文件
主题冲突
如果控件的属性和主题定义的属性冲突,总是优先使用主题定义的属性
改变优先级
<%@Page styleSheetTheme="主题名" >
styleSheetTheme<控件属性 一个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 转载于:https://www.cnblogs.com/Sea1ee/p/5911120.html
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
