Il vous manque la liaison de données.
private void Button1_Click(object sender, EventArgs e)
{
DataTable tab = new DataTable();
tab.Columns.Add("matricule", Type.GetType("System.Int32"));
tab.Columns.Add("nom", Type.GetType("System.String"));
tab.Columns.Add("part", Type.GetType("System.Int32"));
for (int i = 0; i <= dg.Rows.Count - 1; i++)
{
DataRow dr = tab.NewRow();
dr[0] = dg.Rows[i].Cells[0].Text;
dr[1] = dg.Rows[i].Cells[1].Text;
dr[2] = dg.Rows[i].Cells[2].Text;
tab.Rows.Add(dr);
}
DataRow mdr = tab.NewRow();
mdr[0] = Server.HtmlEncode(t1.Text);
mdr[1] = Server.HtmlEncode(t2.Text);
mdr[2] = Server.HtmlEncode(t3.Text);
tab.Rows.Add(mdr);
dg.DataSource = tab;
dg.DataBind();
}