I feel rowediting event is the problem, because when you click Edit button RowEdit event occurs but this occurs before Gridview control get into edit mode.
Normally we use this event as a precaution/prevention. So that you can cancel editing.
The very usual code that we write in RowEdit is to set EditIndex:
gvCAD.EditIndex = e.NewEditIndex;
And EditCacel event as:
protected void gvCAD_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
{
gvCAD.EditIndex = -1;
}
I propose you go with
gvCAD_RowUpdating event and try.
Thanks,
Kuthuparakkal