1

我一直在尝试用这段代码做上述事情:

protected void Page_Load(object sender, EventArgs e)
{
    if (!this.IsPostBack)
    {
        //Populating a table from the database
        SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["connect"].ToString());
        con.Open();
        SqlDataAdapter da = new SqlDataAdapter("Select * from tbluser", con);
        DataTable dt = new DataTable();
        da.Fill(dt);
        DataTable finaldt = new DataTable();
        foreach (DataColumn column in dt.Columns)
        {
            if (column.ColumnName == "user_name")
            {
                finaldt.Columns.Add("Username", typeof(string));
            }else if (column.ColumnName == "first_name")
            {
                finaldt.Columns.Add("First Name", typeof(string));
            }else if (column.ColumnName == "last_name")
            {
                finaldt.Columns.Add("Last Name", typeof(string));
            }else if (column.ColumnName == "email")
            {
                finaldt.Columns.Add("E-mail", typeof(string));
            }else if (column.ColumnName == "grade")
            {
                finaldt.Columns.Add("Grade", typeof(string));
            }
        }
        finaldt.Columns.Add("Edit", typeof(Button));
        foreach (DataRow row in dt.Rows)
        {
            Button removalButton = new Button();
            removalButton.Text = "Remove";
            removalButton.ID = "remove_" + row["user_name"];
            removalButton.Click += new EventHandler(remove_student);
            finaldt.Rows.Add(row["user_name"], row["first_name"], row["last_name"], row["email"], row["grade"], removalButton);
        }

        GridView1.DataSource = finaldt;
        GridView1.DataBind();

在我将行添加到“finaldt”的底部附近,我不确定此逻辑对于尝试使用

finaldt.Columns.Add("Edit", typeof(Button));

线。我应该在这里做些不同的事情吗?

4

2 回答 2

1
于 2017-10-31T04:42:09.270 回答
1

您不能将按钮添加到DataTable. DataGridViewRow每当您完成加载DataTable.

DataGridViewButtonColumn buttonColumn = new DataGridViewButtonColumn();
buttonColumn.Name = "YourColumn";
buttonColumn.Text = "YourText";

if (YourDataGrid.Columns["YourColumn"] == null)
{
    YourDataGrid.Columns.Insert(4, buttonColumn); //here you have to put the columnIndex
}

然后你必须添加处理程序:

YourDataGrid.CellClick += dataGridViewButton_CellClick;

然后用它做点什么:

private void dataGridViewButton_CellClick(object sender, DataGridViewCellEventArgs e)
{
    //YOUR CODE IN HERE
}
于 2017-10-30T19:28:22.777 回答