if(e.Item.ItemType==ListItemType.Header)
for(int i=0,j=e.Item.Cells.Count;i<j;i++){
e.Item.Cells[i].Width=System.Web.UI.WebControls.Unit.Pixel(20);
}
但是因为html语言本身的解释问题,无法真正强制指定列宽
比如你无法实现
<table><tr><td>aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa</td><tr></table>
无论你指定其什么参数aaaaaaaaaaaaaa永远不会换行

解决方案 »

  1.   

    我有"地区"这一列,老是被挤成两行,很讨厌,但是我又没办法To blackant2(乔峰) 
    if(e.Item.ItemType==ListItemType.Header)
    for(int i=0,j=e.Item.Cells.Count;i<j;i++){
    e.Item.Cells[i].Width=System.Web.UI.WebControls.Unit.Pixel(20);
    }e是指什么?
      

  2.   

    而且我的数据源是动态帮定的.注意   只有绑定到数据源的项才包含在 Items 集合中。(微软帮助)
      

  3.   

    datagrid.collumn.width=new unit(……)like this,on the sever
      

  4.   

    我自己试试吧
    可以在dataitembind中或itemcreate中调用上面的方法都可以
    可以查看其源文件是不是table中第一行每个td都指定了width属性
      

  5.   

    e.Item.Cells[i].Width=System.Web.UI.WebControls.Unit.Pixel(20);
      

  6.   

    同意fordfamily(c#阁下),我在以前的项目中试过,可行。