面对GridView.Columns.Count为0的问题
来源:互联网 发布:吴宗宪淘宝直播回放 编辑:程序博客网 时间:2024/04/29 11:44
好久没有用纯ADO.NET进行开发了,近日重操旧码,想来个温故而知新,就做了几个小Demo.其中一个简单的应用就是把一个DataTable简单的绑定到GridView,把数据显示出来.数据绑定之后,我惯性的想屏蔽掉部分Columns和设置一些Columns属性,可问题就来了,调用GridView.Columns[0]时竟然抛出边界错误,一查GridView.Columns.Count,莫大的一个0跃然纸上,开始当然是以为自己的代码有问题,反复检查后,确信一点问题都没有,驱猫上网百一下和G一下,发现遇到这个问题的朋友还不少.
原来服务器端DataSet或者DateTbale之流绑定给GridView之后,GridView只会按照字段的顺序显示所有列,此时无论GridView的AutoGenerateColumns属性启用还是不启用,Columns对象的Count将为0,因为GridView还是会自动生成的列,而自动生成列是不会放入到Columns集合中去的.
没有办法了,锅穿洞就自己补补咯,难道要饿着等MS爷爷给你饭吃么.其实做法也很简单,写个动态添加Columns函数就行了吧.
/**//// <summary>
/// 动态生成GridView的Columns
/// </summary>
/// <param name="gv"></param>
/// <param name="dt"></param>
/// <returns></returns>
public static GridView dynamicGenerateColumns(GridView gv, DataTable dt)
...{
// 把GridView的自动产生列设置为false,否则会出现重复列
gv.AutoGenerateColumns = false;
// 清空所有的Columns
gv.Columns.Clear();
// 遍历DataTable 的每个Columns,然后添加到GridView中去
foreach (DataColumn item in dt.Columns)
...{
BoundField col = new BoundField();
col.HeaderText = item.ColumnName;
col.DataField = item.ColumnName;
col.Visible = true;
gv.Columns.Add(col);
}
return gv;
}
/// 动态生成GridView的Columns
/// </summary>
/// <param name="gv"></param>
/// <param name="dt"></param>
/// <returns></returns>
public static GridView dynamicGenerateColumns(GridView gv, DataTable dt)
...{
// 把GridView的自动产生列设置为false,否则会出现重复列
gv.AutoGenerateColumns = false;
// 清空所有的Columns
gv.Columns.Clear();
// 遍历DataTable 的每个Columns,然后添加到GridView中去
foreach (DataColumn item in dt.Columns)
...{
BoundField col = new BoundField();
col.HeaderText = item.ColumnName;
col.DataField = item.ColumnName;
col.Visible = true;
gv.Columns.Add(col);
}
return gv;
}
添加完Columns,就可以舒心的用GridView.Columns[index]进行操作了,操作完还是来两句DataSource和DataBind,目的即可达到
- 面对GridView.Columns.Count为0的问题
- GridView.Columns.Count 值为0的问题。
- GridView1.Columns.Count总是0的问题
- 关于"GridView1.Columns.Count=0"的问题
- ASP.NET的GridView控件的DataKeys的count属性为0
- gridview的OnRowDataBound必须存在 <Columns>
- Yii2 GridView 中对columns的定义
- GridView.Columns 属性
- Request.Files.Count 为 0 的问题解决
- Creating GridView Columns Dynamically (Part 1)--动态创建GridView的列(一)
- 搜索引擎面对的主要问题
- 程序员要面对的问题
- Hibernate使用NativeSQL查询类型为char的columns
- hive--add columns问题
- Count(*)和Count(1)的问题
- 关于Vtable的修改问题-不要随意加Columns
- 在同一个表中,显示COUNT()为0的结果
- Request.Form("cardno").Item(y) 的count总是为0
- 一定要努力
- PetShop4.0架构分析及工厂模式的使用
- Data Import 2007 for MySql,MySql Data Wizard 导入XML到MySql使用经验
- RMAN快速入门指南
- 智者乐水,仁者乐山
- 面对GridView.Columns.Count为0的问题
- Writing Efficient Testbenches
- 硬盘分区别忽视 七大分区原则(转载)
- 一个自动配置网络的批处理文件
- java之------eclipse 访问sql server 2000
- 向往淡泊,追求宁静
- 《学习C语言心得》
- RFC 822 中文版 MIME解析基础(4)(第5-6也)
- 范型编程与STL 学习笔记(一)