禁用asp.net gridview中的文本换行

时间:2013-02-28 02:04:57

标签: c# asp.net gridview

输出如下:

MyNameIsJohnSmithAnd
Imaperson

我想要的是只在一行显示

MyNameIsJohnSmithAndImaperson

我的Aspx gridview代码是:

<asp:GridView ID="GridView1" runat="server" BackColor="LightGoldenrodYellow" 
    BorderColor="Tan" BorderWidth="1px" CellPadding="5" Font-Names="Calibri" 
    Font-Size="Medium" Font-Underline="False" ForeColor="Black">
    <RowStyle Wrap="False"/>
    <EmptyDataRowStyle Wrap="False"/>
    <FooterStyle BackColor="Tan" BorderColor="Black" BorderStyle="Solid" Wrap="False"/>
    <PagerStyle BackColor="PaleGoldenrod" ForeColor="DarkSlateBlue" 
        HorizontalAlign="Center" Wrap="False" />
    <SelectedRowStyle BackColor="DarkSlateBlue" ForeColor="GhostWhite" Wrap="False"/>
    <HeaderStyle BackColor="Tan" BorderStyle="Solid" Font-Bold="True" Wrap="False"/>
    <EditRowStyle Wrap="False"/>
    <AlternatingRowStyle BackColor="PaleGoldenrod" Wrap="False"/>
</asp:GridView>

我在gridview中禁用了所有的wrap属性为false。但文本仍然包装。

5 个答案:

答案 0 :(得分:19)

您还必须将gridview单个列自动换行设置为False。

<asp:BoundField DataField="Description" HeaderText="Description" SortExpression="Description" >
            <ItemStyle Wrap="False" />
            </asp:BoundField>

答案 1 :(得分:16)

尝试将此事件添加到gridview。

protected void GridView_RowDataBound(object sender, GridViewRowEventArgs e)
{
    for (int i = 0; i < e.Row.Cells.Count; i++)
    {
        e.Row.Cells[i].Attributes.Add("style", "white-space: nowrap;");
    }
}

Here是参考。

答案 2 :(得分:2)

.Net中非常简单在属性窗口中选择您的网格视图(如设计模式中)并按照此操作  RowStyle - &gt; Font - &gt;&gt; Wrap = False

完成了

答案 3 :(得分:0)

你可以通过css。

来做到这一点
#GridView1
    {
      white-space:nowrap;
    }

答案 4 :(得分:0)

我的列标题文字正在包装,所以我最终需要一个稍微不同的解决方案,但与user3578419建议的类似。

在设计视图中,我编辑了'ColumnHeadersDefaultCellStyle'属性,并将'WrapMode'值更改为'False'。