如何为CheckBoxList和RadioButtonList添加滚动条

 更新时间:2016年07月04日 16:38:59   作者:迪克猪  
这篇文章主要介绍了为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
  }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Asp.Net设计模式之单例模式详解

    Asp.Net设计模式之单例模式详解

    这篇文章主要为大家详细介绍了Asp.Net设计模式之单例模式的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-11-11
  • .NET中的MassTransit分布式应用框架详解

    .NET中的MassTransit分布式应用框架详解

    MassTransit是一款优秀的分布式应用框架,可作为分布式应用的消息总线,也可以用作单体应用的事件总线,这篇文章主要介绍了.NET中的MassTransit分布式应用框架,需要的朋友可以参考下
    2022-10-10
  • 批量账号的login测试功能实现

    批量账号的login测试功能实现

    用WaitiN写了个简单的login自动化测试,能够使用少量的代码实现批量账号的login测试,需要的朋友可以参考下
    2012-11-11
  • asp.net基于HashTable实现购物车的方法

    asp.net基于HashTable实现购物车的方法

    这篇文章主要介绍了asp.net基于HashTable实现购物车的方法,涉及asp.net中HashTable结合session实现购物车功能的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-12-12
  • asp.net开发中常见公共捕获异常方式总结(附源码)

    asp.net开发中常见公共捕获异常方式总结(附源码)

    这篇文章主要介绍了asp.net开发中常见公共捕获异常方式总结,结合实例形式较为详细的分析了asp.net捕获异常的相关技巧,并提供了完整的实例代码供读者下载参考,需要的朋友可以参考下
    2015-11-11
  • ASP.NET中操作数据库的基本步骤分享

    ASP.NET中操作数据库的基本步骤分享

    ASP.NET中操作数据库的基本步骤分享,学习asp.net的朋友可以参考下。
    2011-10-10
  • 如何合并多个 .NET 程序集

    如何合并多个 .NET 程序集

    这篇文章主要介绍了如何合并多个 .NET 程序集的方法,大家可能都听说过项 ILMerge, SmartAssembly, 等这样的工具.但是我想如果我们就能通过在编译时将所有这些源代码文件导入一个项目,来获得这些东西的一个完美组合.下面我们就来仔细探讨下。
    2015-03-03
  • Asp.net 网站性能优化二则分享

    Asp.net 网站性能优化二则分享

    Web服务器的性能优化有很多资料介绍了,多台主机负载均衡,查询结果的多级缓存,数据库索引优化等都是常见的优化手段。
    2011-08-08
  • asp.net下使用Request.From获取非服务器控件的值的方法

    asp.net下使用Request.From获取非服务器控件的值的方法

    asp.net下使用Request.From获取非服务器控件的值的方法,需要的朋友可以参考下。
    2010-03-03
  • 使用 HttpReports 监控 .NET Core 应用程序的方法

    使用 HttpReports 监控 .NET Core 应用程序的方法

    这篇文章主要介绍了使用 HttpReports 监控 .NET Core 应用程序的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03

最新评论