【问题标题】:ASP.NET DataGrid Header WidthASP.NET DataGrid 标题宽度
【发布时间】:2013-11-21 16:32:17
【问题描述】:

ASP.NET DataGrid,在我将数据绑定到 GridView 后,如何调整列标题宽度使其不被换行。

下面是代码

using (SqlConnection _conn = new SqlConnection(_sqlServer))
        {
            using (SqlCommand _cmd = _conn.CreateCommand())
            {
                _cmd.CommandText = 
                    "select * from Clients order by ID desc";
                using (SqlDataAdapter _da = new SqlDataAdapter(_cmd))
                {
                    DataSet _ds = new DataSet();
                    _da.Fill(_ds);
                    gvClients.DataSource = _ds.Tables[0];
                    gvClients.DataBind();
                }
            }
        }

.aspx

<asp:GridView ID="gvClients" runat="server">
        <Columns>
            <asp:BoundField DataField="ID" HeaderText="ID" SortExpression="ID"/>
            <asp:BoundField DataField="Client" HeaderText="Client" SortExpression="Client" />
            <asp:BoundField DataField="ClientID" HeaderText="Client ID" SortExpression="ClientID" />
            <asp:BoundField DataField="ContactInfo" HeaderText="Contact Info" SortExpression="ContactInfo" />
            <asp:BoundField DataField="AssignedTech" HeaderText="Assigned Tech" SortExpression="AssignedTech" />
            <asp:BoundField DataField="Status" HeaderText="Status" SortExpression="Status" />
        </Columns>
    </asp:GridView>

我试过了

<asp:BoundField DataField="ContactInfo" HeaderText="Contact Info" ItemStyle-Width = "300px" SortExpression="ContactInfo" />
<asp:BoundField DataField="ContactInfo" HeaderText="Contact Info" HeaderStyle-Width="300px" SortExpression="ContactInfo" />

【问题讨论】:

  • 您是否有任何 CSS 可能会覆盖这些宽度值或与这些值发生冲突?具体来说,任何与thtd 相关的CSS?

标签: c# asp.net c#-4.0 web datagrid


【解决方案1】:

你也可以试试这个

private void grv_RowDataBound(object sender, GridViewRowEventArgs e)
{

    if (e.Row.RowType == DataControlRowType.Header)
        e.Row.Cells[3].Width = Unit.Pixel(300);
}

您也可以尝试不包装标题行的 CSS 解决方案

th {
  white-space: nowrap;
}

【讨论】:

    【解决方案2】:

    您正在调整网格视图的行数据绑定事件中的标题列 使用以下代码

    if (e.Row.RowType == DataControlRowType.Header)
    {
         e.Row.Cells[ColumnIndex].Width = Unit.Pixel(Width in Number);
    }
    

    【讨论】:

      【解决方案3】:
      <asp:GridView runat="server" HeaderStyle-Wrap="false"></asp:GridView>
      

      【讨论】:

        猜你喜欢
        • 2011-05-11
        • 1970-01-01
        • 2011-10-24
        • 2013-12-09
        • 1970-01-01
        • 2012-08-24
        • 2011-09-25
        • 1970-01-01
        • 2015-03-20
        相关资源
        最近更新 更多