.NET2.0中skin的使用简化了网站整体外观的建设工作,为程序员节省不少精力。
    在skin文件中.NET自带的各种控件是可以直接设置样式的,可是如果是自己开发的控件,能不能用skin来统一样式呢?
    今天在部署项目的skin时候,发现了这个问题,使用了自定义的YYControl的smartgridview控件,把下面样式放到.skin文件中报错:“错误 1 未知的服务器标记“yyc:smartgridview”。”
asp.net2.0中自定义控件skin的应用方法<yyc:smartgridview runat="server" GridLines="None" Width="100%">
asp.net2.0中自定义控件skin的应用方法            
<RowStyle HorizontalAlign="Left" />
asp.net2.0中自定义控件skin的应用方法            
<HeaderStyle HorizontalAlign="Left" CssClass="title" />
asp.net2.0中自定义控件skin的应用方法            
<AlternatingRowStyle BackColor="#F9FFF6" />
asp.net2.0中自定义控件skin的应用方法
</yyc:smartgridview>
于是就想到在.skin文件注册这个控件:加上下面代码就OK了:
asp.net2.0中自定义控件skin的应用方法<%@ Register Assembly="YYControls" Namespace="YYControls" TagPrefix="yyc" %>

这个控件实际上是继承了自带的GridView控件,所以其大部分默认属性都和GridView一样,可以在skin文件中定义样式。查了一下资料发现要是自己开发的用户控件,要想在skin中能够对某个属性定义样式,只需要在其属性前添加[Themeable(true)]即可。
如下面的样例:
  这是一个用来刷新页面的一个自定义的ImageButton,其好处是刷新当前页,动作的触发是在客户端利用脚本来完成,不需要写任何程序代码:
asp.net2.0中自定义控件skin的应用方法using System;
asp.net2.0中自定义控件skin的应用方法
using System.Web.UI;
asp.net2.0中自定义控件skin的应用方法
using System.Web.UI.WebControls;
asp.net2.0中自定义控件skin的应用方法
using System.Web.UI.HtmlControls;
asp.net2.0中自定义控件skin的应用方法
using System.ComponentModel;
asp.net2.0中自定义控件skin的应用方法
using System.Drawing;
asp.net2.0中自定义控件skin的应用方法
using System.Drawing.Design;
asp.net2.0中自定义控件skin的应用方法
using System.IO;
asp.net2.0中自定义控件skin的应用方法
using System.Reflection;
asp.net2.0中自定义控件skin的应用方法
using System.Collections;
asp.net2.0中自定义控件skin的应用方法
using System.Web.UI.Design;
asp.net2.0中自定义控件skin的应用方法
using System.Web;
asp.net2.0中自定义控件skin的应用方法
using System.Text; 
asp.net2.0中自定义控件skin的应用方法
asp.net2.0中自定义控件skin的应用方法
namespace G3CustomControls
主题的Skin文件配置如下:
asp.net2.0中自定义控件skin的应用方法<%@ Register Assembly="G3CustomControls" Namespace="G3CustomControls" TagPrefix="cc1" %>
asp.net2.0中自定义控件skin的应用方法  
<cc1:CloseButton runat="server" ImageUrl="~/App_Themes/Blue/images/button_Close.gif"></cc1:CloseButton>
asp.net2.0中自定义控件skin的应用方法  
<cc1:RefreshButton runat="server" ImageUrl="~/App_Themes/Blue/images/button_Refresh.gif"></cc1:RefreshButton>
asp.net2.0中自定义控件skin的应用方法  
<cc1:RefreshButton runat="server" SkinId= "RefreshButton2" ImageUrl="~/App_Themes/Blue/images/button_Refresh2.gif"></cc1:RefreshButton>
asp.net2.0中自定义控件skin的应用方法

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-12-29
  • 2021-12-18
  • 2022-02-25
猜你喜欢
  • 2022-12-23
  • 2022-01-03
  • 2021-06-08
  • 2022-12-23
  • 2021-12-13
相关资源
相似解决方案