I replicated your scenario on my system. I have to made few changes, like binding gridview after data has been mapped into table. Also, while block seems to be creating an infinite loop, so i have to comment out that (you might need to check that logic again). Here is the final code and it worked for me and i can see data on the web page
protected async void Page_Load(object sender, EventArgs e)
{
InitTable();
int pageNume = 0;
int id = 0;
var rankings = await GameRankingsFromPage(0);
foreach (var ranking in rankings)
table.Rows.Add(id++, ranking.Name, ranking.Score);
pageNume++;
rankings = await GameRankingsFromPage(pageNume);
GridView1.DataSource = table;
GridView1.DataBind();
}
private void InitTable()
{
table = new DataTable("Xbox Prices");
table.Columns.Add("ID", typeof(string));
table.Columns.Add("Name", typeof(string));
table.Columns.Add("Score", typeof(string));
}