zoukankan      html  css  js  c++  java
  • 给CheckBoxList和RadioButtonList添加滚动条

    如何给CheckBoxList和RadioButtonList添加滚动条??
    继承基类CheckBoxList和RadioButtonList,添加滚动属性,重写Render方法即可。
    属性列表:

     

      1        #region 滚动控制
      2         private bool _ShowScrollBar = false;
      3         /// <summary>
      4         /// 显示滚动条
      5         /// </summary>
      6         [
      7        System.ComponentModel.Description("是否显示显示滚动条")
      8        , System.ComponentModel.DefaultValue(false)
      9        , System.ComponentModel.Category("滚动条设置")
     10        , System.ComponentModel.Bindable(System.ComponentModel.BindableSupport.Yes)
     11        ]
     12         public bool ShowScrollBar
     13         {
     14             get { return _ShowScrollBar; }
     15             set { _ShowScrollBar = value; }
     16         }
     17         private Overflow _OverflowY = Overflow.auto;
     18         /// <summary>
     19         /// 竖直滚动条
     20         /// </summary>
     21         [
     22        System.ComponentModel.Description("竖直滚动条")
     23        , System.ComponentModel.DefaultValue(Overflow.auto)
     24        , System.ComponentModel.Category("滚动条设置")
     25        , System.ComponentModel.Bindable(System.ComponentModel.BindableSupport.Yes)
     26        ]
     27         public Overflow OverflowY
     28         {
     29             get { return _OverflowY; }
     30             set { _OverflowY = value; }
     31         }
     32         private Overflow _OverflowX = Overflow.auto;
     33         /// <summary>
     34         /// 水平滚动条
     35         /// </summary>
     36         [
     37        System.ComponentModel.Description("水平滚动条")
     38        , System.ComponentModel.DefaultValue(Overflow.auto)
     39        , System.ComponentModel.Category("滚动条设置")
     40        , System.ComponentModel.Bindable(System.ComponentModel.BindableSupport.Yes)
     41        ]
     42         public Overflow OverflowX
     43         {
     44             get { return _OverflowX; }
     45             set { _OverflowX = value; }
     46         }
     47         private Unit _ScrollHeight = Unit.Parse("0px");
     48         /// <summary>
     49         /// 滚动高度
     50         /// </summary>
     51         [
     52        System.ComponentModel.Description("滚动高度")
     53        , System.ComponentModel.Category("滚动条设置")
     54          , DefaultValue("0px")
     55        , System.ComponentModel.Bindable(System.ComponentModel.BindableSupport.Yes)
     56        ]
     57         public Unit ScrollHeight
     58         {
     59             get { return _ScrollHeight; }
     60             set { _ScrollHeight = value; }
     61         }
     62         private Unit _ScrollWidth = Unit.Parse("0px");
     63         /// <summary>
     64         /// 滚动宽度
     65         /// </summary>
     66         [
     67        System.ComponentModel.Description("滚动宽度")
     68        , System.ComponentModel.Category("滚动条设置")
     69         , DefaultValue("0px")
     70        , System.ComponentModel.Bindable(System.ComponentModel.BindableSupport.Yes)
     71        ]
     72         public Unit ScrollWidth
     73         {
     74             get { return _ScrollWidth; }
     75             set { _ScrollWidth = value; }
     76         }
     77         private string _ScrollCssClass = "";
     78         /// <summary>
     79         /// 滚动样式设置
     80         /// </summary>
     81         [
     82        System.ComponentModel.Description("滚动样式设置")
     83        , System.ComponentModel.Category("滚动条设置")
     84        , System.ComponentModel.DefaultValue("")
     85        , System.ComponentModel.Bindable(System.ComponentModel.BindableSupport.Yes)
     86        ]
     87         public string ScrollCssClass
     88         {
     89             get { return _ScrollCssClass; }
     90             set { _ScrollCssClass = value; }
     91         }
     92 
     93         #region 书写标签
     94         void WriteBeginSpan(HtmlTextWriter writer)
     95         {
     96             if (this._ShowScrollBar)
     97             {
     98                 StringBuilder strSpan = new StringBuilder();
     99                 strSpan.Append("<span ");
    100                 strSpan.Append(string.Format("style='overflow-y:{0};overflow-x:{1};",
    101                     System.Enum.GetName(typeof(Overflow), this._OverflowY),
    102                     System.Enum.GetName(typeof(Overflow), this._OverflowX)));
    103                 if (this._ScrollHeight.ToString() != "0px")
    104                 {
    105                     strSpan.Append(string.Format("height:{0};"this._ScrollHeight));
    106                 }
    107                 if (this._ScrollWidth.ToString() != "0px")
    108                 {
    109                     strSpan.Append(string.Format("{0};"this._ScrollWidth));
    110                 }
    111                 strSpan.Append("';");
    112                 if (!string.IsNullOrEmpty(_ScrollCssClass))
    113                 {
    114                     strSpan.Append(string.Format(" class='{0}'", _ScrollCssClass));
    115                 }
    116                 strSpan.Append(">");
    117                 writer.Write(strSpan.ToString());
    118             }
    119         }
    120         void WriteEndSpan(HtmlTextWriter writer)
    121         {
    122             if (this._ShowScrollBar)
    123             {
    124                 writer.Write("</span>");
    125             }
    126         }
    127         #endregion
    128         #endregion

    重写Render方法:

            protected override void Render(HtmlTextWriter writer)
            {
                
    this.WriteBeginSpan(writer);
                
    base.Render(writer);
                
    this.WriteEndSpan(writer);
            }

     

    就这样就可以了。
    还要定义一个枚举:

    1     public enum Overflow
    2     {
    3         auto = 0,
    4         hidden = 1,
    5         scroll = 2,
    6         visible = 3,
    7         inherit = 4
    8     }

     

  • 相关阅读:
    手机怎么知道5G基站的存在?(小区搜索和SSB简介)
    Python中*args,**kwargs两个参数的作用?
    python之jupyter的安装
    国内安装python库速度慢的解决办法
    MOSFET:金属-氧化物半导体场效应晶体管
    C# 小知识点汇总
    ajax和form和七个中间件
    BBS功能分析
    MVC和MTV
    自关联和auth模块
  • 原文地址:https://www.cnblogs.com/zsy/p/1160137.html
Copyright © 2011-2022 走看看