自定义控件运用主题

20 篇文章 0 订阅

主题是属性设置的集合,使用这些设置可以定义页面和控件的外观,然后在某个 Web 应用程中的所有页、整个 Web 应用程序或服务器上的所有 Web 应用程中一致地应用此外观。

可以使用主题来定义的属性

通常,可以使用主题来定义与某个页或控件的外观或静态内容有关的属性。只能设置那些其 ThemeableAttribute 属性 (Attribute) 设置为 true(在控件类中)的属性 (Property)。

显式地指定控件行为而不是指定外观的属性不接受主题值。例如,不能使用主题来设置 Button 控件的 CommandName 属性。同样,不能使用主题来设置 GridView 控件的 AllowPaging 属性或 DataSource 属性。

请注意,您不能使用表达式生成器,这些生成器在编译时生成页面中的主题赋值或外观赋值的代码表达式。

自定义了继承GridView类的XGridView类的其中的属性,代码如下:

	[Browsable(true)]
        [Description("鼠标经过行的颜色")]
        [DefaultValue("")]
        [Category("扩展")]
        [Themeable(true)]
        public string MouseOverColor
        {
            get
            {
                return ViewState[mouseOverColorStr] == null ? Color.Silver.Name : ViewState[mouseOverColorStr].ToString();
            }
            set
            {
                ViewState[mouseOverColorStr] = value;
            }
        }

上面运用了Themeable(true)声明了能运用主题的属性

 

定义主题


该skin文件中注册该自定义控件,指定其所在程序集、名称空间、标签前缀等,就像我们在页面中使用自定义控件一样,但对于标签前缀的命名不一定要和页面中完全一样

<%@ Register Assembly="MyControls" Namespace="MyControls" TagPrefix="mc" %>


 

<mc:XGridView runat="server" CellPadding="4"  ForeColor="#333333" GridLines="None" MouseOverColor="#0ac0ff">
        <RowStyle CssClass="oddRow" HorizontalAlign="Center" />
        <FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
        <PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />
        <SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
        <HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" HorizontalAlign="Center" />
        <EditRowStyle BackColor="#2461BF" />
        <AlternatingRowStyle  CssClass="evenRow" />
          <EmptyDataTemplate> <div style="color:red; font-size:14px; border:solid 1px blue; padding:30px; ">没有符合条件的数据,请添加数据或修改查询条件。</div>  </EmptyDataTemplate>
</mc:XGridView>


应用自定义控件

 

<%@ Register Assembly="MyControls" Namespace="MyControls" TagPrefix="mc" %>
<mc:XGridView ID="XGridView1" runat="server" AutoGenerateColumns="false" >
            <Columns>
                <asp:BoundField HeaderText="角色编号" DataField="ID" />
                <asp:BoundField HeaderText="角色名称" DataField="UserRoleName" ItemStyle-HorizontalAlign="Left" />
                <asp:BoundField HeaderText="角色描述" DataField="UserRoleDescript" ItemStyle-HorizontalAlign="Left" />
            </Columns>
            </mc:XGridView>
 
运行效果
 

 



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值