您的位置:首页 > 编程语言 > ASP

自定义控件之GridView(一)创建自定义的GridView控件

2010-06-25 17:16 471 查看
本文目的:

创建一个自定义的GridView控件

 

    VS2008中的GridView很好用,不过在使用上却有一点点不方便。在一个网站中,通常会将所有的GridView设成相同的样式、相同的功能,比如说,当鼠标滑过时显示不同的颜色、在排序时表头显示是顺序还是倒序,等等。这些功能,在GridView中都能实现,只是你需要为每个包含GridView的页面写相同的代码……这都重复劳动,于是,我想,能不能把GridView写成一个自定义控件,将常用的功能添加到该控件中,然后再将这个控件直接在网页中使用呢?

 

    先试试吧。

 

    首先、创建一个空白的网站,再添加一个名为“YundaoControls”的“ASP.net服务器控件”项目,如下图所示。如果不知道怎么添加的话,可以看一下《在VS2008中创建自定义控件(一)创建网站项目和自定义控件项目》,再依葫芦画瓢就行了。



 
    第二步,将上图中的没用的ServerControl1.cs删除,再在“YundaoControls”项目中创建一个名为“YundaoGridView”的文件夹,自定义的GridView控件就放在这个文件夹中了。
 
    第三步,在“YundaoGridView”文件夹中添加一个名为“YundaoGridView”的“ASP.NET服务器控件”,不会添加的话,请看《在VS2008中创建自定义控件(二)创建自定义控件并将其添加到工具箱中》,依第二个葫芦画第二个瓢。

 

    第四步,打开“YundaoGridView.cs”文件,将没用的Text属性和RenderContents()方法都删除掉,然后在“namespace YundaoControls.YundaoGridView”上添加“[assembly: TagPrefix("YundaoControls.YundaoGridView", "YundaoControlsGridView")] ”,用于指定添加自定义控件时的tagprefix的值,如有没明白的请看《在VS2008中创建自定义控件(四)为自定义控件添加默认值》和《在VS2008中创建自定义控件(五)修改tagprefix》。然后将默认继承的“WebControl”类改为“GridView”类。最后整个CS文件的代码如下所示,修改的地方我已经注释出来了。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
[assembly: TagPrefix("YundaoControls.YundaoGridView", "YundaoControlsGridView")]    //添加自定义控件时显示的默认的tagprefix值
namespace YundaoControls.YundaoGridView
{
/// <summary>
/// 继承GridView的YundaoGridView类
/// </summary>
[ToolboxData("<{0}:YundaoGridView runat=server></{0}:YundaoGridView>")]
public class YundaoGridView : GridView      //继承GridView类
{
}
}
 

 

    经过上面的步骤,一个GridView自定义控件已经创建完毕,可以在网页上添加这个控件了。

    一、打开网站上的Default.aspx文件,将自定义控件拖到该文件中,如下图所示。



    在Default.aspx的源视图中可以看到添加该控件的代码,如下图所示。



 

    二、由于GridView需要绑定数据源,为了方便起见,我们先创建一个XML文件,文件内容如下所示。

<?xml version="1.0" encoding="utf-8" ?>
<学生信息>
<学生 学号="20100001" 姓名="张三" 性别="男" 民族="汉" 班级="一班"></学生>
<学生 学号="20100002" 姓名="李四" 性别="女" 民族="汉" 班级="一班"></学生>
<学生 学号="20100003" 姓名="王五" 性别="男" 民族="满" 班级="一班"></学生>
<学生 学号="20100004" 姓名="赵六" 性别="女" 民族="汉" 班级="一班"></学生>
<学生 学号="20100005" 姓名="刘七" 性别="男" 民族="汉" 班级="二班"></学生>
<学生 学号="20100006" 姓名="熊八" 性别="男" 民族="汉" 班级="二班"></学生>
<学生 学号="20100007" 姓名="钱九" 性别="女" 民族="土家" 班级="二班"></学生>
<学生 学号="20100008" 姓名="孙十" 性别="男" 民族="汉" 班级="二班"></学生>
<学生 学号="20100009" 姓名="吴二" 性别="男" 民族="汉" 班级="二班"></学生>
<学生 学号="20100010" 姓名="唐可" 性别="女" 民族="瑶" 班级="二班"></学生>
</学生信息>
 

 

    三、回到aspx页面的设计视图,在该视图中,可以看到自定义的GridView控件和服务器的GridView控件没什么区别,这是因为自定义的GridView控件是继承了服务器的GridView控件,所以,目前的所有功能都是一样的。现在,我们可以为它添加一个数据源,如下图所示。









 

    最后的运行结果如下图所示。



 

    本文源代码下载地址:http://download.csdn.net/source/3265774
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐