繁体   English   中英

动态将标题和列添加到GridView

[英]Dynamically add headers and columns to GridView

我有一个gridview,但目前它只设置一个标题。 我想要做的是根据用户数量在表末尾的其他列旁边添加新标题。

protected void GridView1_RowDataBound(object sender, System.Web.UI.WebControls.GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.Header)
    {
        GridView1.UseAccessibleHeader = true;
        GridView1.AutoGenerateColumns = false;
        int i = 6;
        string constr = ConfigurationManager.ConnectionStrings["CMT"].ConnectionString;
        using (SqlConnection conn = new SqlConnection(constr))
        {
            using (SqlCommand cmd = new SqlCommand())
            {
                cmd.CommandText = "SELECT * FROM [user]";
                cmd.Connection = conn;
                conn.Open();
                using (SqlDataReader sdr = cmd.ExecuteReader())
                {
                    while (sdr.Read())
                    {                                  
                        GridView1.Columns[6].HeaderText = sdr["user_first_name"].ToString();
                        break;
                    }
                }
                conn.Close();
            }
        }
    }
}

您可以在绑定数据之前将TemplateField列添加到GridView中。 可以在Page_Load事件处理程序中完成:

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        using (SqlConnection conn = new SqlConnection(constr))
        {
            using (SqlCommand cmd = new SqlCommand())
            {
                cmd.CommandText = "SELECT * FROM [user]";
                cmd.Connection = conn;
                conn.Open();
                using (SqlDataReader sdr = cmd.ExecuteReader())
                {
                    while (sdr.Read())
                    {
                        TemplateField field = new TemplateField();
                        field.HeaderText = sdr["user_first_name"].ToString();
                        field.HeaderStyle.Width = Unit.Pixel(80);
                        GridView1.Columns.Add(field);
                    }
                }
                conn.Close();
            }
        }
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM