Ciao. dal codice direi che è normale quello che fa: tu crei una riga clonata (=senza dati) del datatable.
Che cosa vorresti che facesse? devi inserire nuovi dati? caricare qualcosa di default?
Questo un esempio di inserimento di una nuova riga di dati:
protected void imgbInsert_Click(object sender, ImageClickEventArgs e)
{
DataTable dt = new DataTable();
DataRow dr = dt.NewRow();
//Il controllo qui sotto sarebbe inutile, avendo già istanziato sopra il dt
if (dt == null)
{
dt = new DataTable();
}
if (grvPeriodi.DataSource != null)
{
dt = (DataTable)grvPeriodi.DataSource;
}
//Devo riassegnare la riga: il newrow crea solo un clone (=stessa struttura di una riga della dt, ma senza dati)
dt.Rows.Add();
grvPeriodi.DataSource = dt;
grvPeriodi.DataBind();
}
Quindi:
Prima devo riempire la nuova riga "dr" coi dati (cioè, stessi campi del dt).
Ad esempio:
dr["tariffa"]=....
dr["Dal"]=...
e così via.
Poi, riassocio la riga:
dt.Rows.Add(dr);
(Per sicurezza, puoi confermare:
dt.acceptChanges();)
Ora posso riassociare il datasource al nuovo dt, con la mia nuova riga.
Se invece non ho capito io, dimmi pure cosa volevi fare.
Paolo