如何给CheckBoxList和RadioButtonList添加滚动条?
继承基类CheckBoxList和RadioButtonList,添加滚动属性,重写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}以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。