如何为CheckBoxList和RadioButtonList添加滚动条

2017-04-15 17:23:43 .net
这篇文章主要介绍了为CheckBoxList和RadioButtonList添加滚动条的方法,感兴趣的小伙伴们可以参考一下
如何给CheckBoxList和RadioButtonList添加滚动条?
继承基类CheckBoxListRadioButtonList,添加滚动属性,重写Render方法即可。
属性列表:
#region 滚动控制
    private bool _ShowScrollBar = false;
    /// <summary>
    /// 显示滚动条
    /// </summary>
    [
    System.ComponentModel.Description("是否显示显示滚动条")
    , System.ComponentModel.DefaultValue(false)
    , System.ComponentModel.Category("滚动条设置")
    , System.ComponentModel.Bindable(System.ComponentModel.BindableSupport.Yes)
    ]
    public bool ShowScrollBar
    {
      get { return _ShowScrollBar; }
      set { _ShowScrollBar = value; }
    }
    private Overflow _OverflowY = Overflow.auto;
    /// <summary>
    /// 竖直滚动条
    /// </summary>
    [
    System.ComponentModel.Description("竖直滚动条")
    , System.ComponentModel.DefaultValue(Overflow.auto)
    , System.ComponentModel.Category("滚动条设置")
    , System.ComponentModel.Bindable(System.ComponentModel.BindableSupport.Yes)
    ]
    public Overflow OverflowY
    {
      get { return _OverflowY; }
      set { _OverflowY = value; }
    }
    private Overflow _OverflowX = Overflow.auto;
    /// <summary>
    /// 水平滚动条
    /// </summary>
    [
    System.ComponentModel.Description("水平滚动条")
    , System.ComponentModel.DefaultValue(Overflow.auto)
    , System.ComponentModel.Category("滚动条设置")
    , System.ComponentModel.Bindable(System.ComponentModel.BindableSupport.Yes)
    ]
    public Overflow OverflowX
    {
      get { return _OverflowX; }
      set { _OverflowX = value; }
    }
    private Unit _ScrollHeight = Unit.Parse("0px");
    /// <summary>
    /// 滚动高度
    /// </summary>
    [
    System.ComponentModel.Description("滚动高度")
    , System.ComponentModel.Category("滚动条设置")
     , DefaultValue("0px")
    , System.ComponentModel.Bindable(System.ComponentModel.BindableSupport.Yes)
    ]
    public Unit ScrollHeight
    {
      get { return _ScrollHeight; }
      set { _ScrollHeight = value; }
    }
    private Unit _ScrollWidth = Unit.Parse("0px");
    /// <summary>
    /// 滚动宽度
    /// </summary>
    [
    System.ComponentModel.Description("滚动宽度")
    , System.ComponentModel.Category("滚动条设置")
    , DefaultValue("0px")
    , System.ComponentModel.Bindable(System.ComponentModel.BindableSupport.Yes)
    ]
    public Unit ScrollWidth
    {
      get { return _ScrollWidth; }
      set { _ScrollWidth = value; }
    }
    private string _ScrollCssClass = "";
    /// <summary>
    /// 滚动样式设置
    /// </summary>
    [
    System.ComponentModel.Description("滚动样式设置")
    , System.ComponentModel.Category("滚动条设置")
    , System.ComponentModel.DefaultValue("")
    , System.ComponentModel.Bindable(System.ComponentModel.BindableSupport.Yes)
    ]
    public string ScrollCssClass
    {
      get { return _ScrollCssClass; }
      set { _ScrollCssClass = value; }
    }
 
    #region 书写标签
    void WriteBeginSpan(HtmlTextWriter writer)
    {
      if (this._ShowScrollBar)
      {
        StringBuilder strSpan = new StringBuilder();
        strSpan.Append("<span ");
        strSpan.Append(string.Format("style='overflow-y:{0};overflow-x:{1};",
          System.Enum.GetName(typeof(Overflow), this._OverflowY),
          System.Enum.GetName(typeof(Overflow), this._OverflowX)));
        if (this._ScrollHeight.ToString() != "0px")
        {
          strSpan.Append(string.Format("height:{0};", this._ScrollHeight));
        }
        if (this._ScrollWidth.ToString() != "0px")
        {
          strSpan.Append(string.Format("width:{0};", this._ScrollWidth));
        }
        strSpan.Append("';");
        if (!string.IsNullOrEmpty(_ScrollCssClass))
        {
          strSpan.Append(string.Format(" class='{0}'", _ScrollCssClass));
        }
        strSpan.Append(">");
        writer.Write(strSpan.ToString());
      }
    }
    void WriteEndSpan(HtmlTextWriter writer)
    {
      if (this._ShowScrollBar)
      {
        writer.Write("</span>");
      }
    }
    #endregion
    #endregion

重写Render方法:
protected override void Render(HtmlTextWriter writer)
   {
     this.WriteBeginSpan(writer);
     base.Render(writer);
     this.WriteEndSpan(writer);
   } 


就这样就可以了。
还要定义一个枚举
public enum Overflow
  {
    auto = 0,
    hidden = 1,
    scroll = 2,
    visible = 3,
    inherit = 4
  }

上面就是这篇文章的全部内容,希望对大家的学习和工作有所帮助