Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 绑定数据源后如何调整gridview列宽度_C#_Asp.net_Gridview - Fatal编程技术网

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

C# 绑定数据源后如何调整gridview列宽度,c#,asp.net,gridview,C#,Asp.net,Gridview,我有一个asp:GridView绑定到SQL数据,绑定数据后如何调整GridView列宽 myConnect = new MySqlConnection(conStr); myConnect.Open(); try { string strSQL = "SELECT * FROM report_data WHERE user = @user"; MySqlDat

我有一个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>
我也尝试过这种方法,但不起作用

    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" />
在您的组件上:

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;
}

您在浏览器中看到了什么。您正在创建的css规则是否已应用?上图是我在chrome浏览器中获得的,css文件工作正常。您可以从中获取参考或键入以使用
!css中的重要信息
。不确定,但您也可以尝试
gvRecords.Columns[0].Attributes.add(“style”,“150px!important”)我尝试gvRecords.Columns[0].Attributes.add(“样式”,“150px!重要”)。但在Attributes属性上出错。不确定语法,但应该有一种方法可以向列添加样式。我这样做了,但没有任何更改。我想我的GridView原始宽度是100%。是的。这是工作。虽然代码看起来很重。我做了很多tr td+td+td+td…等等@TYS如果你正在使用css3,这里有一个参考可以帮助你优化CSS一点。
asp:GridView ID="GridView1" runat="server" CssClass="mytable"
.gridview tr td {
  padding: 5px;
  border: 1px solid #ddd;
}


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