web-dev-qa-db-fra.com

Ajouter une ligne à la vue en grille

Est-il possible d'ajouter par programme une ligne à un GridView en C # ASP?

Si oui comment?

Je veux ajouter des données statiques directement à partir du code, pas d'un tableau ni d'une source de données

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

Vous pouvez ensuite lier votre GridView à la DataTable...

gv.DataSource = dt;
gv.DataBind();
12
christiandev
dataGridView1.Columns[0].Name = "column1";
dataGridView1.Columns[1].Name = "column2";

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

GridViewRowsCollection n'a pas la méthode .Add, vous ne pouvez donc pas le faire directement dans GridView. 

Il y a des alternatives. Par exemple, si vous le liez à un DataTable, vous pouvez ajouter une ligne personnalisée contenant des données au DataTable.

Une autre alternative - le faire sur le client en ajoutant une ligne à la table HTML rendue.

1
Yuriy Galanter

Les lignes peuvent être insérées sur 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);
}
0
Akshay Mishra