`
happmaoo
  • 浏览: 4309018 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

动态的管理ASP.NET DataGrid数据列

阅读更多

ASP.NETDataGrid数据显示控件编程中,我们有几种方式可以增加DataGrid columns。其中最常见的方法是在web forms设计器中增加,通过在控件工具箱中拖访DataGrid控件到web设计页面,然后在属性生成器中增加Columns;还有一种方式就是在HTML视图模式下更改HTML代码的方式增加Columns列。但是这两种方式都是在设计时进行的,一旦设计完成就无法更改。其实我们也可以在程序运行时动态的增加或者删除Columns列。在这篇文章中,我将向大家介绍如何编程实现在运行时动态的增加和删除Columns列,其实是通过隐藏或者现实Columns列来实现的。

DataGrid Columns属性是访问datagrid Columns的关键所在。访问这个属性返回的是DataGridColumnCollection这样的一个集合对象,它包含了所有的DataGrigColumn对象。DataGridColumnCollection提供了增加一个DataGrigColumn对象和删除一个已经存在的DataGrigColumn对象的方法。,我们将使用DataGridColumnCollectionAdd方法来增加一个DataGrigColumn对象,从而在运行时动态的增加一列到DataGrid中去。一个DataGrigColumn代表DataGrid的一列,DataGridVisible属性用来显示或者隐藏一个列。<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

好了,下面让大家跟我一起来创建一个DynamicDataGridC#ASP.NET的工程,他有隐藏和显示DataGrid 的每一列的选项。

在我用VS.NET创建的web application里面,我在设计页面上拖放了一个Panel 控件。在这个panel控件上,我放置了一个DataGrid控件,一个DropDownList控件,两个Button控件用于改变DataGrid控件的属性。最后的设计界面看起来是下图这样的。

<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /><shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"><stroke joinstyle="miter"></stroke><formulas><f eqn="if lineDrawn pixelLineWidth 0"></f><f eqn="sum @0 1 0"></f><f eqn="sum 0 0 @1"></f><f eqn="prod @2 1 2"></f><f eqn="prod @3 21600 pixelWidth"></f><f eqn="prod @3 21600 pixelHeight"></f><f eqn="sum @0 0 1"></f><f eqn="prod @6 1 2"></f><f eqn="prod @7 21600 pixelWidth"></f><f eqn="sum @8 21600 0"></f><f eqn="prod @7 21600 pixelHeight"></f><f eqn="sum @10 21600 0"></f></formulas><path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"></path><lock aspectratio="t" v:ext="edit"></lock></shapetype>


现在我们开始创建两个方法:FillDataGrid()FillColumnsList()方法。FillDataGrid()用于增加一个列到DataGrid控件和用DataSet数据源来填充它。在这里的我是通过DB.GetDataSet()方法来获取DataSet的。大家可以参照附加的源代码文件(DB.CS)获取更多的细节。

下面的代码说明了CreateDataGrid()的实现。从代码中可以看出,我创建了三个列,用BoundColumnDataField属性绑定到DatasetID,NameAddress字段。BoundColumn类继承自DataGridColumn类。

private void CreateDataGrid()
{
// Set DataGrid properties
DataGrid1.AutoGenerateColumns = false;

// Get a DataSet object filled with data
DataSet ds = DB.GetDataSet();

// Create ID column & add to DataGrid
BoundColumn col = new BoundColumn();
col.HeaderText="User ID";
col.DataField="ID";
DataGrid1.Columns.Add(col);

// Create Name column & add to DataGrid
col = new BoundColumn();
col.HeaderText="User Name";
col.DataField="Name";
DataGrid1.Columns.Add(col);

// Create Address column & add to DataGrid
col = new BoundColumn();
col.HeaderText="User Address";
col.DataField="Address";
DataGrid1.Columns.Add(col);

// DataGrid data binding
DataGrid1.DataSource = ds.Tables[0];
DataGrid1.DataBind();
}

FillColumnsList()方法只是简单的从DataGrid中读取列名,并且将这些列(Columns)名填充到DropDownList控件的下拉列表中去。我们将使用DropDownList控件来选取隐藏或者显示的列。

private void FillColumnsList(DataGrid grid)
{
foreach (DataGridColumn col in grid.Columns)
{
ColumnsList.Items.Add(col.HeaderText);
}
}

接着我们来添加HideDataGridColumn()方法来具体的通过index索引和bool值两个参数来显示或者隐藏一个列。在这里,我仅仅是简单的设置Columns列的Visible属性为true或者false.

private void HideDataGridColumn(int index, bool show)
{
DataGrid1.Columns[index].Visible = show;
}

最后的工作就是增加Show ColumnHide Column的单击事件处理。正如我们在代码中看到的一样,我只是简单的调用HideDataGridColumn()方法来显示或者隐藏列,当然要传入参数了。

private void HideColumnBtn_Click(object sender, System.EventArgs e)
{
HideDataGridColumn(ColumnsList.SelectedIndex, false);
this.DataBind();
}
private void ShowColumnBtn_Click(object sender, System.EventArgs e)
{
HideDataGridColumn(ColumnsList.SelectedIndex, true);
this.DataBind();
}

OK,所有的工作都结束了,我们看看运行的结果如何。你可以通过下拉列表来选择要隐藏或者显示的列,并且只需单击Show或者Hide按钮即可。


分享到:
评论

相关推荐

    动态管理ASP.NET DataGrid数据列

    在ASP.NET的DataGrid数据显示控件编程中,我们有几种方式可以增加DataGrid columns。其中最常见的方法是在web forms设计器中增加,通过在控件工具箱中拖访DataGrid控件到web设计页面,然后在属性生成器中增加Columns...

    asp.net 将DataGrid数据写入Excel文件.rar

    asp.net 将DataGrid数据写入Excel文件.rar

    ASP.NET中实现DataGrid数据排序

    Visual Studio .Net为编写WinForm程序(即:在Windows平台下运行的程序)所提供的DataGrid组件比起微软以往的各种开发环境中提供的 DataGrid组件都要\"高级\"许多。其\"高级\"的地方就在于不需要再进行任何其他设置...

    asp.net DataGridTree表格树控件

    继承asp.net的DataGrid控件实现的表格树控件 /*表格树控件说明 * 此控件继承DataGrid 新增属性说明: * 1.TreeParentCode:顶级根节点parentcode * 2.TreeDisplayDeep:展现表格树深度默认为1 * 3.SumColumns:...

    C# ASP.net将DataGrid数据输出到Excel文件

    C#如何将DataGrid数据输出到Excel文件呢?,这是一个ASP.NET WEB测试代码,数据库为access,把Access中的内容导出到Excel文件中,并保持数据格式不变,测试时请在ASP.NET3.5环境以上进行,数据库文件路径请修改Web....

    一个基于C#+ASP.NET实现可以进行DataGrid全数据记录进行编辑维护的程序例子

    一个基于C#+ASP.NET实现可以进行DataGrid全数据记录进行编辑维护的程序例子.

    自定义asp.net中DataGrid的一个分页控件

    自定义asp.net中DataGrid的一个分页控件。。 在winform下实现。。。其实有了思路哪儿写都一样O(∩_∩)O哈哈~

    ASP.NET中DataGrid控件应用技巧简述

    运用ASP.NET开发Web应用程序过程中,DataGrid是一个非常重要的控件,几乎任何和数据相关的表现都要用到该控件。所以熟练掌握DataGrid控件的应用技巧是每个Web开发人员所必备的基本能力。

    ASP.Net开发者常见 Datagrid 错误

    摘要:学习如何避免在使用 ASP.NET Datagrid 控件进行开发时可能发生的一些常见错误。  Datagrid 控件是 Microsoft® ASP.NET 中功能最强、用途最广的 Web 控件之一,这一点已经得到了 ASP.NET 权威人士的认同。...

    落阳-利用NPOI将EasyuiDatagrid数据导出到Excel-ASP.NET MVC Demo

    落阳-利用NPOI将EasyuiDatagrid数据导出到Excel-ASP.NET MVC Demo

    ASP.NET常见问题集锦.zip

    ASP.NET中实现DataGrid数据排序.doc asp.net中的弹出对话框.doc ASP.NET中自定义控件的创建和使用.doc ASP.NET实现用户在线检测的类源码.txt ASP.NET常见问题集锦.zip ASP.NET弹出式日历选择控件的实现.doc ...

    ASP.NET学习大全

    将DataGrid数据写入Excel文件.txt 揭开ASP.NET中Cookie编程的奥秘.txt 利用TreeView控件动态生成无限级树.txt 实现一个Asp.net自定义Back控件.txt 使用XML创建Excel文档.txt 鼠标停留在GridView某一行时颜色改变.txt...

    ASP.NET中DataGrid和DataList控件用法比较

    DataGrid/DataList在ASP.NET中的重要性,想必就不用我再强调了,凡显示Table类型的数据,大多会使用这两个控件(当然,如果谁还像ASP那样写ASP.NET,那我也没有办法),所以,每个人可能都有自己的领悟,这篇文章,...

    ASP.NET中DataGrid控件的使用技巧

    在ASP.NET提供的数据访问控件中,DataGrid具有功能强大的数据展示功能。本文就实现数据排序、自动编号、产生合计项、数据导出为EXCEL文件格式的功能,进行探讨

    ASP.net中大结果集的分页

    传统的asp里这并不是一个简单的任务,但在asp.net中,DataGrid控件把这一过程简化为只有 几行代码。因此,在 asp.net中,分页很简单,但是默认的DataGrid分页事件会从数据库中把所 有的记录全部读出来放到asp.net ...

    asp.net学习大全(超全面的资料整合)

    将DataGrid数据写入Excel文件.txt 揭开ASP.NET中Cookie编程的奥秘.txt 利用TreeView控件动态生成无限级树.txt 实现一个Asp.net自定义Back控件.txt 使用XML创建Excel文档.txt 鼠标停留在GridView某一行时颜色改变.txt...

    asp.net开发常用整理集合

     Asp.net手动绑定数据(分页、编辑、删除、加控件等操作)  Asp.net中My97DatePicker4.2日期的使用  Asp.net中DataList控件添加删除  Asp.net获取请求的用户信息IP地址  获取世界IP地址库显所在城市信息  ...

    Programming ASP.NET(第三版)

    本书主要介绍.NET平台和ASP.NET;HTML编程基础;比较ASP和ASP.NET;ASP.NET中的事件;比较HTML控件和ASP控件;基本的ASP控件APl;代码隐藏窗体:使用Visual Studio.NET集成开发环境:跟踪,调试和错误处理;ASP.NET...

    ASP.NET基础控件-教程

     Asp.net手动绑定数据(分页、编辑、删除、加控件等操作)  Asp.net中My97DatePicker4.2日期的使用  Asp.net中DataList控件添加删除  Asp.net获取请求的用户信息IP地址  获取世界IP地址库显所在城市信息  MySQL...

Global site tag (gtag.js) - Google Analytics