Используйте свойство RowIndex
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
GridViewRow row = GridView1.Rows[e.RowIndex];
string name = row.Cells[1].Text;
string subname = row.Cells[2].Text;
}
Чтобы получить старые / новые значения строки обновления, вы также можете использовать GridViewUpdateEventArgs.OldValues
и GridViewUpdateEventArgs.NewValues
Dictionaries
.
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
string oldName = e.OldValues["Name"];
string oldSubname = e.OldValues["SubName"];
string newName = e.NewValues["Name"];
string newSubname = e.NewValues["SubName"];
}
Для обнаружения только измененных значений (не проверено) :
var changed = new Dictionary<Object, Object>();
foreach (DictionaryEntry entry in e.NewValues)
{
if (e.OldValues[entry.Key] != entry.Value)
{
changed.Add(entry.Key, entry.Value);
}
}
или с LINQ:
changed = e.NewValues.Cast<DictionaryEntry>()
.Where(entry => entry.Value != e.OldValues[entry.Key])
.ToDictionary(entry => entry.Key, entry => entry.Value);
http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.rowupdating.aspx