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

にボタンを追加することはできませんDataTableDataGridViewRowのロードが完了するたびに、 ボタンを に追加する必要があります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 に答える