在GridView中
1、从数据库读出来的列数是不固定的(比如化验不同的物品要化验的元素是不等的,有多有少),我想绑定到GridView中(对某个物品而言),部分列(如某个物品的化验元素)是自动的;
2、在GridView中可以对这些化验元素可以作修改,就是动态的TextBox;
3、两层表头的问题,我在GridView1_RowCreated中使用tcHeader[4].Attributes.Add("colspan", "\""+(ds.Tables[0].Columns.Count - 2).ToString()+"\"");报如下错误:Specified argument was out of the range of valid values.Parameter name: indexhyid Cu Au Ag         |        hyid Cu Ag      
222 1 2 3             |         444  7  8 
333 4   6             |         555  9  10 
------------->        |      ------------->
样 品编 号    分析项目   |     样 品编 号    分析项目 
             Cu Au Ag   |                Cu  Ag 
222         1  2   3  |      444        11  12
333         4      6  |      555        13  14

解决方案 »

  1.   

    很显然是这个语句报告的错误:
    tcHeader[4].Attributes.Add("colspan", "\""+(ds.Tables[0].Columns.Count - 2).ToString()+"\"");
    错误:Specified argument was out of the range of valid values.Parameter name: index 
    指定的参数超出有效值的范围。参数名:index 分析下,可能是这个地方的错误:
    tcHeader[4]:有可能没有第 5 个元素存在。
      

  2.   

    你的意思 是不是   有的为空 有的不为空???但是你需要把 有的值 绑定到上面 没有的就不绑了???是不 ??
    如果是这样的话   你可以绑定之前把你的数据源处理一下,比如你的数据源为dataset 那么你遍历数据源,如果里面有空值你就把她变成“”或者null  (你试试这两个反正有一个可以忘了),这样你绑顶上去,有就会出来没有就不会出来。
      

  3.   

    tcHeader[4]//确保有五个列才行,要不然肯定会报你现在的错误
      

  4.   

    空值当然报错了 你试试如果取出来以后 做个表达式绑定比如express?value:0 空值的赋值给0这样子