All'evento UpdateCommand del datagrid ho associato questa funzione ma solo il primo campo assume un valore (lUserId) gli altri sono tutte stringhe vuote. L'unica differenza è che la prima cella non è modificabile mentre le altre si.
private void dgrUtenti_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
long lUserId = Convert.ToInt32(e.Item.Cells[0].Text);
string sNome = e.Item.Cells[1].Text;
string sCognome = e.Item.Cells[2].Text;
....
dgrUtenti.DataSource = objDataReader;
dgrUtenti.DataBind();
}
E comunque non sarebbe possibile usare il findcontrol? In questo modo risolverei il problema se ll'ordine delle celle cambiasse!
Ho provato:
int iSelDgr = e.Item.ItemIndex;
long lUserId = Convert.ToInt32(dgrUtenti.Items[iSelDgr].FindControl("UserId"));
oppure
long lUserId = Convert.ToInt32(e.Item.FindControl("UserId"));
ma non mi funziona :-(
Qualche consiglio?
Grazie!