首先感谢各位能进来看帖子,先请耐心看完我的问题,万分感谢!
    
    碰到个棘手的问题求助!!我有一个gridview,数据是动态绑定的,由于行数和列数无法确定,在程序运行时,获取的列数为0,我如何能设置列宽?设置headrow.cells[i].width也无效果,尝试了网上各种方法都未果。我想设置列宽是因为我想让gridview首行固定,网上的各种办法我都尝试了,都不能满足我需求,由于我的列数是无法确定的,实现时主要由以下两大问题:1.如果用js或者2个gridview 或table 复制表头的话,就会有表头和下面数据无法对齐的问题,所以想能设置列宽。2.如果用css首先ie8或火狐不支持 expression,即便用低版本的浏览器,会出现由于表头过长,显示时会超出div或者panel的范围,导致纵向实现了表头固定,但是横向拖动时,表头不动。如果列数确定,以上两种方法都能实现,但我的列数是不确定。本人是个新手,请各位能帮下小弟~

解决方案 »

  1.   

    <ItemStyle HorizontalAlign="Left" Width="15%" />
      

  2.   

    GridView1.Columns[0].ItemStyle.Width = 800;
      

  3.   

    在GridView里面有个height 和 width 属性 可以设置
      

  4.   

    各位没有明白我的意思,我的列数是不固定的,无法在页面上设置类似<ItemStyle HorizontalAlign="Left" Width="15%" />的属性,在程序中设置width的属性也无效果,如果是固定列,那么一切都OK~继续等待高手来解决~~此问题困扰我1周了~
      

  5.   

    如果你的数据源是datatable; dt是一个datatable,
    for(int i = 0; i < dt.Columns.Count; i++)
                {
                    BoundField bf = new BoundField();
                    bf.HeaderText = dt.Columns[i].ColumnName;
                    bf.DataField = dt.Columns[i].ColumnName;
                    double width = (double)(100 / dt.Columns.Count);
                    bf.ItemStyle.Width = Unit.Percentage(width);  //设置列宽(这里是等宽)
                    bf.ItemStyle.HorizontalAlign = HorizontalAlign.Left;
                    GridViewDetailData.Columns.Insert(i, bf);   //动态加载列
                }
      

  6.   

    不可能了,如果下面的都改变了那么你的头也得改很丑。
    介意lz数据长了就用省略号吧+title就可以了