在asp.net的datagrid数据显示控件编程中,我们有几种方式可以增加datagrid columns。其中最常见的方法是在web forms设计器中增加,通过在控件工具箱中拖访datagrid控件到web设计页面,然后在属性生成器中增加columns列;还有一种方式就是在html视图模式下更改html代码的方式增加columns列。但是这两种方式都是在设计时进行的,一旦设计完成就无法更改。其实我们也可以在程序运行时动态的增加或者删除columns列。在这篇文章中,我将向大家介绍如何编程实现在运行时动态的增加和删除columns列,其实是通过隐藏或者现实columns列来实现的。
datagrid 的columns属性是访问datagrid columns的关键所在。访问这个属性返回的是datagridcolumncollection这样的一个集合对象,它包含了所有的datagrigcolumn对象。datagridcolumncollection提供了增加一个datagrigcolumn对象和删除一个已经存在的datagrigcolumn对象的方法。,我们将使用datagridcolumncollection的add方法来增加一个datagrigcolumn对象,从而在运行时动态的增加一列到datagrid中去。一个datagrigcolumn代表datagrid的一列,datagrid的visible属性用来显示或者隐藏一个列。
好了,下面让大家跟我一起来创建一个dynamicdatagrid的c#的asp.net的工程,他有隐藏和显示datagrid 的每一列的选项。
在我用vs.net创建的web application里面,我在设计页面上拖放了一个panel 控件。在这个panel控件上,我放置了一个datagrid控件,一个dropdownlist控件,两个button控件用于改变datagrid控件的属性。最后的设计界面看起来是下图这样的。
现在我们开始创建两个方法:filldatagrid()和fillcolumnslist()方法。filldatagrid()用于增加一个列到datagrid控件和用dataset数据源来填充它。在这里的我是通过db.getdataset()方法来获取dataset的。大家可以参照附加的源代码文件(db.cs)获取更多的细节。
下面的代码说明了createdatagrid()的实现。从代码中可以看出,我创建了三个列,用boundcolumn的datafield属性绑定到dataset的id,name和address字段。boundcolumn类继承自datagridcolumn类。
代码拷贝框
[ctrl+a 全部选择 然后拷贝]
ok,所有的工作都结束了,我们看看运行的结果如何。你可以通过下拉列表来选择要隐藏或者显示的列,并且只需单击show或者hide按钮即可。
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器