Add row to grid view

∥☆過路亽.° 提交于 2019-12-21 03:57:08

问题


Is it possible to programmatically add a row to a GridView in C# ASP?

If yes, how ?

I want to add static data directly from the code, not from an array nor an datasource


回答1:


DataTable dt = new DataTable();
DataRow dr = dt.NewRow();
dr["Column1"] = string.Empty;
dt.Rows.Add(dr);

You can then bind your GridView to the DataTable...

gv.DataSource = dt;
gv.DataBind();



回答2:


dataGridView1.Columns[0].Name = "column1";
dataGridView1.Columns[1].Name = "column2";

string[] row1 = new string[] { "column1 value", "column2 value" };
dataGridView1.Rows.Add(row1);



回答3:


GridViewRowsCollection doesn't have .Add method, so you can't do it directly to the GridView.

There're alternatives. For example if you bind it to a DataTable - you can add custom row with data to the DataTable.

Another alternative - do it on client by adding a row to rendered HTML Table.




回答4:


Rows can be inserted on GridView_RowCreated, Like

protected void gvItems_RowCreated(object sender, GridViewRowEventArgs e)
{                    
    GridViewRow NewHeader = new GridViewRow(0, 0, DataControlRowType.DataRow, DataControlRowState.Insert);
    NewHeader.Font.Bold = true;
    NewHeader.CssClass = "heading";

    //Item#
    TableCell NewHeaderCell = new TableCell();
    NewHeaderCell.Text = "#";
    NewHeaderCell.HorizontalAlign = HorizontalAlign.Left;
    NewHeader.Cells.Add(NewHeaderCell);

    //Item#
    NewHeaderCell = new TableCell();
    NewHeaderCell.Text = "Item#";
    NewHeaderCell.HorizontalAlign = HorizontalAlign.Left;
    NewHeader.Cells.Add(NewHeaderCell);

    //Amount
    NewHeaderCell = new TableCell();
    NewHeaderCell.Text = "Amount";
    NewHeaderCell.HorizontalAlign = HorizontalAlign.Right;
    NewHeader.Cells.Add(NewHeaderCell);
    GridView1.Controls[0].Controls.AddAt(e.Row.RowIndex + 
        rowIndex, NewHeader);
}



回答5:


I still recommend that you use binding/datasource, but of course you don't have to. The following should do what you want:

        DataGridViewTextBoxColumn columntype = new DataGridViewTextBoxColumn();
        columntype.HeaderText = "Type";
        columntype.Width = 80;
        dataGridView1.Columns.Add(columntype);


来源:https://stackoverflow.com/questions/19257451/add-row-to-grid-view

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!