Asp.net的DataGrid有个问题,它的Column有个属性ItemStyle.Wrap,设计是当这个列的ItemStyle.Wrap属性为true时,单元格允许回行,为false不允许回行,可是当设置了为false时输出到客户端的是这样的see http://www.csdn.net/develop/article/20/20407.shtm

解决方案 »

  1.   

    查看DataGrid是不是设置了默认宽度,将DataGrid的宽度去掉后列就可以调整宽度了
      

  2.   

    <asp:BoundColumn HeaderText="aa">
                        <HeaderStyle width="12px"></HeaderStyle>
                    </asp:BoundColumn>
      

  3.   

    我也有碰到这样的问题。
    后来。我改用:动态加载列。搞定。
    DataView dv = ds1.Tables[0].DefaultView; if(strSort.Trim() != "")
    {
    if (SortMark)
    {
    dv.Sort = strSort + " DESC";
    SortMark = false;
    }
    else
    {
    dv.Sort = strSort + " ASC";
    SortMark = true;
    }
    } for(int i=0;i<ds1.Tables[0].Columns.Count;i++)
    {
    //Create One column & add to DataGrid
    BoundColumn col = new BoundColumn();
    col.HeaderStyle.Width=Unit.Pixel(100);
    col.HeaderStyle.Wrap=false;
    col.ItemStyle.Width = Unit.Pixel(100);
    col.ItemStyle.Wrap=false;
    col.HeaderText=ds1.Tables[0].Columns[i].ColumnName.ToString();
    col.DataField=ds1.Tables[0].Columns[i].ColumnName.ToString();
    col.SortExpression=ds1.Tables[0].Columns[i].ColumnName.ToString();
    DataGrid1.Columns.Add(col);
    } DataGrid1.DataSource = dv;
    DataGrid1.DataBind();
      

  4.   

    <table id="table1" height="100%" cellSpacing="0" cellPadding="0" width="100%" border="0">
    <tr>
    <td vAlign="top" width="100%">
    <div id="div1" style="OVERFLOW-Y: hidden; OVERFLOW-X: scroll; WIDTH: 630px">
    <asp:datagrid id="DataGrid1" runat="server" GridLines="Vertical" ForeColor="Black" CellPadding="3" BackColor="White" BorderWidth="1px" AutoGenerateColumns="False" Width="800px" BorderStyle="Solid" >
    <Columns>
    <asp:TemplateColumn SortExpression="checked">
    <HeaderStyle Width="5%"></HeaderStyle>
    <ItemTemplate>
    <asp:CheckBox ID="myCheck" Runat="server" />
    </ItemTemplate>
    </asp:TemplateColumn>
    <asp:BoundColumn DataField="id" ReadOnly="True" HeaderText="id">
    <HeaderStyle Width="12%"></HeaderStyle>
    </asp:BoundColumn>
    <asp:BoundColumn DataField="name" ReadOnly="True" HeaderText="name">
    <HeaderStyle Width="83%"></HeaderStyle>
    </asp:BoundColumn>
    </Columns>
    <PagerStyle HorizontalAlign="Left" ForeColor="Black" BackColor="#999999" Mode="NumericPages"></PagerStyle>
    </asp:datagrid>
    </div>
    </td>
    </tr>
    </table>
      

  5.   

    你最好设置好datagrid的宽度,然后再设置各列的百分比
      

  6.   

    <asp:datagrid id="dgDistribute" Width="316px" runat="server" AutoGenerateColumns="False" Font-Size="10pt" PageSize="15" BorderColor="#A0ABEB" BorderStyle="Solid" BorderWidth="1px" BackColor="White" CellPadding="4" GridLines="Vertical" ForeColor="#444444">
    <SelectedItemStyle ForeColor="White" BackColor="Black"></SelectedItemStyle>
    <AlternatingItemStyle BackColor="#EEEEEE"></AlternatingItemStyle>
    <HeaderStyle HorizontalAlign="Left" ForeColor="White" BorderColor="#6876C5" BackColor="#6876C5"></HeaderStyle>
    <FooterStyle BackColor="Black"></FooterStyle>
    <Columns>
    <asp:BoundColumn DataField="Value" HeaderText="平均分数">
    <HeaderStyle Width="150px"></HeaderStyle>
    </asp:BoundColumn>
    <asp:BoundColumn DataField="PerNumber" HeaderText="变量个数">
    <HeaderStyle Width="150px"></HeaderStyle>
    </asp:BoundColumn>
    </Columns>
    <PagerStyle HorizontalAlign="Center" ForeColor="Black" BackColor="#999999" Mode="NumericPages"></PagerStyle>
    </asp:datagrid></TD>
      

  7.   

    <Columns>
        <asp:BoundColumn DataField="Value" HeaderText="平均分数">
            <HeaderStyle Width="150px"></HeaderStyle>
        </asp:BoundColumn>
        <asp:BoundColumn DataField="PerNumber" HeaderText="变量个数">
            <HeaderStyle Width="150px"></HeaderStyle>
        </asp:BoundColumn>
    </Columns>
      

  8.   

    没用的,我试过设遍整个DataGrid的wrap属性,设置固定宽度,形同虚设,最后还是用CSS搞定
    TABLE-LAYOUT: fixed; WORD-BREAK: break-all