绑定数据源后如何调整gridview列宽

How to adjust the gridview columns width after binding the datasource

我有一个 asp:GridView 绑定到 SQL 数据,如何在绑定数据后调整 gridview 列宽?

        myConnect = new MySqlConnection(conStr);
        myConnect.Open();

        try
        {
            string strSQL = "SELECT * FROM report_data WHERE user = @user";

            MySqlDataAdapter mySqlDataAdapter = new MySqlDataAdapter(strSQL, myConnect);
            mySqlDataAdapter.SelectCommand.Parameters.AddWithValue("@user", userName);

            DataTable dt = new DataTable();
            mySqlDataAdapter.Fill(dt);
            gvRecords.DataSource = dt;
            gvRecords.DataBind();

        }
        catch (Exception ex)
        {
            Console.WriteLine(ex);
        }
        finally
        {
            myConnect.Close();
        }

下面是aspx中的代码

    <div>
        <asp:GridView CssClass="gridview" ID="gvRecords" runat="server" OnDataBound="gvRecords_DataBound">
        </asp:GridView>
    </div>

还有我的css数据

.gridview tr td {
padding: 5px;
border: 1px solid #ddd;
}
.gridview tr th {
padding: 5px;}

我也试过这种方法,但是不行

    protected void gvRecords_DataBound(object sender, EventArgs e)
    {
        gvRecords.Columns[0].ItemStyle.Width = Unit.Pixel(150);
        gvRecords.Columns[1].ItemStyle.Width = Unit.Pixel(50);
        gvRecords.Columns[2].ItemStyle.Width = Unit.Pixel(100);
        gvRecords.Columns[3].ItemStyle.Width = Unit.Pixel(200);
        gvRecords.Columns[4].ItemStyle.Width = Unit.Pixel(50);
    }

AutoGenerateColumns 生成的列宽不适合数据。

在 css 中添加宽度后,列宽发生变化。比以前好看

.gridview tr td {
padding: 5px;
border: 1px solid #ddd;
width: 100px;}

但是有没有单独调整列宽的方法呢?

将 .cs 文件添加到您的头部部分

<link rel="stylesheet" type="text/css" href="stylesheet1.css" />

样式为:

.mytable { width: 100%; }

在你的组件上:

asp:GridView ID="GridView1" runat="server" CssClass="mytable"

我认为与其在运行时设置它不如使用下面的 css

.gridview tr td {
  padding: 5px;
  border: 1px solid #ddd;
}


// second td
.gridview tr td+td {
   width:50px !important;
}