Torna al Thread
protected void AggiungiRiga(object sender,CommandEventArgs e)
{
ImageButton img = (ImageButton)sender; //recupero l'imagebutton che ha fatto la chiamata
GridView gv= (GridView)img.Parent.Parent.Parent.Parent; //risalgo fino al controllo "padre" contenitore dell'img
//Noi usiamo un DataSet in Session per recuperare i dati scaricati dal db: ovviamente gli id sono inventati, chiamali come vuoi
//qui sotto recupero i dati originali
DataSet ds = (DataSet) Session["DatiOriginali"];
DataRow dr = ds.Tables[0].NewRow();//creo la mia nuova riga dal dataset originario
caricaDefault(); //mi creo un metodo per caricare dei dati di default nella nuova riga
ds.Tables[0].Rows.Add(dr);//aggiungo la riga al dataset originario
gv.EditIndex= gv.Rows.Count;//rendo editabile l'ultima riga della griglia
Session[DatiOriginali] = ds;//riassocio la mia Session al dataset
gv.DataSource = ds;//associo come source alla griglia il nuovo dataset
gv.DataBind();//associo i dati alla griglia
}