Вы можете использовать DataKeyNames
в GridView, чтобы всегда получать правильные данные.
<asp:GridView ID="GridView1" runat="server" DataKeyNames="approvalID">
Затем просто прочитайте правильный DataKey из строки
protected void Button1_Click(object sender, EventArgs e)
{
for (int i = 0; i < GridView1.Rows.Count; i++)
{
int approvalID = Convert.ToInt32(GridView1.DataKeys[i].Values[0]);
}
}