I use this code to invoke a GridView:
<asp:GridView runat="server" ID="detailView" AutoGenerateEditButton="true"
OnRowEditing="EditRow" OnRowCancelingEdit="CancelEdit" OnRowUpdating="UpdateRow" OnRowUpdated="RowUpdated" />
UpdateRow runs fine but RowUpdated never fires.
I now have an application that runs as intended. It makes use of the OnItemUpdating routine configured in the DetailsView control. But I have also proved that the OnItemUpdated routine never fires, even with the success of the Updating routine.
My conclusion is that this combination of handlers is somehow controlled by the nature of the data source. In my case, I am using only DataTable objects for sources.