<asp:BoundColumn DataField="Speedway" HeaderText="交换平台" ItemStyle-Wrap="False">
<HeaderStyle Width="70px"></HeaderStyle>
</asp:BoundColumn>

解决方案 »

  1.   

    我明白这种写法,但这种我在HTML中是可以的,但如果我是动态生成DATAGRID的,如:
     Dim AmcalleeDataGrid As DataGrid = New DataGrid()            AmcalleeDataGrid.Width = 500
                AmcalleeDataGrid.CellPadding = 2
                AmcalleeDataGrid.CellSpacing = 2
    AmcalleeDataGrid
    {
    width:200px;
    text-align:left;
    background-color:Aqua;
    }我将上述的东西放入css中的话,如:
      AmcalleeDataGrid.ItemStyle.CssClass = "AmcalleeDataGrid"却出不来预定的宽度,不知道这是什么回事
      

  2.   

    还是不行!我试过了,html中用css,只要是前面import了,就能在datagrid中直接使用cssclass="xxx" ,但如果要在code中应用的话,该怎么用呢
      

  3.   

    1、可以在ItemDataBound事件中:
    标题宽度:
    if(e.Item.ItemType == ListItemType.Header)
    {
    e.Item.Cells[5].Font.Bold=true;
    e.Item.Cells[5].Width=200;
    }
    单元格
    if(e.Item.ItemType == ListItemType.Item||e.Item.ItemType == ListItemType.AlternatingItem){
    ....
    }
    2、动态添加列:
    BoundColumn bc;
    bc = new BoundColumn();
    bc.HeaderStyle.HorizontalAlign=HorizontalAlign.Center;
    bc.HeaderStyle.Width=(Unit)0.20;
    bc.ItemStyle.HorizontalAlign=HorizontalAlign.Center;
    bc.ItemStyle.Width=(Unit)0.20;
    ....
    HyperLinkColumns TemplateColumns同上。
      

  4.   

    谢谢楼上的兄弟,但如何将bc.HeaderStyle.HorizontalAlign=HorizontalAlign.Center;
    bc.HeaderStyle.Width=(Unit)0.20;
    bc.ItemStyle.HorizontalAlign=HorizontalAlign.Center;
    bc.ItemStyle.Width=(Unit)0.20;这段东西写入css呢因为我在css的class中写入
    width:Unit.Pixel(100)的话,会报错的。如果不放入css的话,code中改动一个值,Rebuld完再refresh的话又得等半天了。
      

  5.   

    同意 panyee(快乐王子) 。
    如果先定义DataGrid的宽度比如:300px
    然后:
    <asp:BoundColumn DataField="id" HeaderText="编号">
    <HeaderStyle Font-Bold="True" HorizontalAlign="Center" Width="7%"></HeaderStyle>
    <ItemStyle HorizontalAlign="Center"></ItemStyle>
    </asp:BoundColumn>
    也可以达到相同的结果。