日期:2014-05-18  浏览次数:20351 次

一个For 循环的问题
在GridView   中绑顶数据列可以有两种方式   一是让它自动生成字段   一是手动绑顶字段。但是在后代码编写程序时,发现他们俩有区别,想问下大伙什么原因。

我在编写一函数时,用到了一个For   循环
for(int   i=0;i <GridView1.Columns.count;i++)
{
............
}
如果GridView   是自动生成字段的话,这个For   循环就不会执行。(GridView1.Columns.Count   =0)
但是如果是手动添加的绑顶字段,就会执行For   循环里的代码
为什么啊?自动生成字段不是也会产生列吗?

------解决方案--------------------
你这是循环是放在绑定前执行的还是绑定后执行的?

绑定前执行当然没有Column了。
------解决方案--------------------
如果GridView 是自动生成字段的话,这个For 循环就不会执行。(GridView1.Columns.Count =0)

========

这是一个已知的问题,颇让人费解,asp.net team 为何如此设计的前后不一致?

当前版本 (2.0) GridView.Columns 仅表示,显示的添加到其中的 Column,
通过 AutoGenerateColumns = true 生成的列不包含其中
------解决方案--------------------
幸好, AutoGenerateColumns = true 基本是鸡肋功能, 我几乎可以忽略它的存在!
------解决方案--------------------
那个Count本来就是你绑定的列,自动生成是不算的
------解决方案--------------------
楼上说得对
------解决方案--------------------
看写在什么事件里了!
------解决方案--------------------
Jinglecat(晓风残月 > > 问题需简洁,错误要详细,需求得明确)
这是一个已知的问题,颇让人费解,asp.net team 为何如此设计的前后不一致?

当前版本 (2.0) GridView.Columns 仅表示,显示的添加到其中的 Column,
通过 AutoGenerateColumns = true 生成的列不包含其中

-------------------------------------

一直纳闷,为什么非要显式添加的Column才会计算在内,微软大意了,难道是?

期望改进后的GridView赶快出来!!