This is a limitation into the grid control. Rebind() method cannot be called in UpdateCommand event handler. A workaround in this case will be to call .Rebind() conditionally in PreRender event:
bool shouldRebind = false;
protected void rgReservation_UpdateCommand(object sender, GridCommandEventArgs e)
{
shouldRebind = true;
}
void rgReservation_PreRender(object sender, EventArgs e)
{
if (shouldRebind)
{
rgReservation.DataSource = null;
rgReservation.Rebind();
}
}