日期:2011-04-08  浏览次数:20447 次

本文适合asp.net初学者阅读,高手达人可以无视。
主要功能:
a.隔行色(颜色可自定义)
b.点击行任意位置选择行
c.点击已选中行任意位置取消选择
d.选中行变色(颜色可自定义)
e.多选全选功能
f.添加双击响应事件
GridView控件功能非常强大,但在具体应用中很多时候无法满足特殊需求。例如我前段时间做自己网站(网站制作学习吧www.web2bar.cn)。在编写后台管理版块期间。由于是文章站,列表页面会比较多。每个列表显示基本一样,功能包括:单击选择一行;单击已经选择的行实现取消选择;被选中的行变色(颜色可以设置);双击可以实现服务器事件处理。如果每个列表都一一去编写,当然也可以达到目的。但像我这样的懒人就想着去网上找个现成的控件拖拉一下最好。不过找了很多,也下载了很多,都不太合意。不是达不到要求就是功能太过强大界面太过复杂。最后只能硬着头皮自己扩展一个了。
首先新建一个类WebBarGridView(名字随意)并继承自GridView。
public class WebBarGridView : GridView
什么?你说为什么要继续GridView。因为我们要扩展它,添加我们自己想要的新功能。当然你也可以直接继承Control。
接下来为类定义几个公开属性和几个私有变量,代码如下:
复制内容到剪贴板
代码:
private HtmlInputCheckBox cb;      //各行前面的多选框
        private Button HideButton = new Button();//隐藏按钮用于引发事件,后面会说到
[Browsable(true)]
        [Category("Appearance")]
        [Description("隔行背景色(单号行的背景)")]
        public Color SingleBackGroundColor
        {
            get
            {
                return ViewState["SingleBackGroundColor"] != null ? (Color)ViewState["SingleBackGroundColor"] : Color.Empty;
            }
            set
            {
                ViewState["SingleBackGroundColor"] = value;
            }
        }
        [Browsable(true)]
        [Category("Appearance")]
        [Description("隔行背景色(双号行的背景)")]
        public Color DoubleBackGroundColor
        {
            get
            {
                return ViewState["DoubleBackGroundColor"] != null ? (Color)ViewState["DoubleBackGroundColor"] : Color.Empty;
            }
            set
            {
                ViewState["DoubleBackGroundColor"] = value;
            }
        }
        [Browsable(true)]
        [Category("Appearance")]
        [Description("选中行背景色")]
        public Color ClickBackGroundColor
        {
            get
            {
                return ViewState["ClickBackGroundColor"] != null ? (Color)ViewState["ClickBackGroundColor"] : Color.Empty;
            }
            set
            {
                ViewState["ClickBackGroundColor"] = value;
            }
     &