网站建设  下载中心 社区论坛 信息公告 MY小屋
联系我们
设为首页
加入收藏

 

当前位置:首页>>编程开发>>NET专区>>正文
注:打开慢时请稍等

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

http://www.iyit.net  日期:2007-5-19 8:43:26  来源:  点击:
参加讨论】    在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类。
  
  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.

本新闻共2页,当前在第1页  1  2  


编辑: [发送给好友] [打印本页] [关闭窗口] [返回顶部]
上一篇:VBScript编码规范格式
下一篇:没有了
转载请注明来源:www.iyit.net
特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。

 相关文章
VBScript编码规范格式 xml写的无限级的树 asp.Net程序如何防止被注入(整站通用)
ASP.NET 如何防范SQL注入式攻击 小技巧:让Apache支持ASP.NET XP下Asp.net访问被拒绝
在ASP.net中保存/取出图片入/从SQL数据 一个.net 压缩位图至JPEG的代码 ASP.NET2.0数据库入门之常见错误
使用 ASP.NET 加密口令 [ASP.NET] Session 详解 ASP.NET学习手记:验证用户表单输入
asp+ 现在已经被官方正式更名为 asp.ne asp.net 的菜单制作(asp.net 的菜单app asp.net中的vb7中如何调用dll中的函数
asp.net中的vb7中如何使用socket作一个 随机函数生成密码的asp.net版本 一个功能完善的专栏管理的程序->这是as
一个功能完善的专栏管理的程序->这是as 这是asp.net的第二个应用(四) ASP.NET强大的性能(二)
ASP.NET多语言支持 ASP.NET升级能力探讨(一) ASP.NET升级能力探讨(二)
最新更新 热点排行 推荐新闻
动态的管理ASP.NET DataGrid数据列
VBScript编码规范格式
xml写的无限级的树
C# Builder建一个ASP.NET应用程序
asp.Net程序如何防止被注入(整站通用)
动态的管理ASP.NET DataGrid数据列
锋芒毕露v3.1QQ最新空间代码
v3.1最新QQ空间代码--李宇春系列
≮血色的记忆≯最新腾讯QQ空间3.1代码
〖连思念都变成了习惯】最新腾讯QQ空间
【滴血玫瑰】最新QQ空间3.1代码
最新3.1版本QQ空间代码--我不是你想要
最新3.1版本QQ空间代码--刘德华QQ空间
6月17日最新3.1版本QQ空间代码,最新的
日常维护 耳机保养的10点建议
动态的管理ASP.NET DataGrid数据列
在ASP与ASP.NET之间共享对话状态(2)
Photoshop十余种漂亮照片边框简单制作
Photoshop实例教程:打造超炫发光圈
照片处理:Photoshop人物照片换头术
Photoshop实例:调出漂亮MM的唯美效果
比熊猫烧香更可怕 光标漏洞病毒现网络
一天出5变种 ANI蠕虫制造者称要买宝马
婚纱照片抠图与背景处理合成技巧
最易损坏电脑的小动作
解决了带javascript语句的链接全都打不
VBScript编码规范格式
xml写的无限级的树
C# Builder建一个ASP.NET应用程序
asp.Net程序如何防止被注入(整站通用)
ASP.NET 如何防范SQL注入式攻击
6月17日最新3.1版本QQ空间代码,最新的
电脑保护误区面面观
系统总蓝屏,原来内存不干净
cpu散热技巧方法和六大误区 
学习CSS布局心得
一天出5变种 ANI蠕虫制造者称要买宝马
微软惊现史上最大漏洞 600木马疯狂肆虐
比熊猫烧香更可怕 光标漏洞病毒现网络
实用的存储过程之一
应用存储过程按月建数据表

设置首 页 - 版权声明 - 广告服务 - 关于我们 - 联系我们 - 友情连接
Copyrights © 2004-2007 iYiT.Net All Rights Reserved.
网站合作、广告联系QQ:147007642、466949678
易特网络技术 点击这里给我发消息