Changin index in GridView gives empty result when DataSource is List<T>
===

In my **ASP.NET application** I have a GridView control `gvDownloads`, which binds the elements correctly. When I change page, however, even if `gvDownloads` has still results in its `DataSource`, it always displays the `<EmptyDataTemplate>`

This is my markup:

    <asp:GridView ID="gvDownloads" UseAccessibleHeader="False"
            AutoGenerateColumns="False" runat="server" PageSize="10" 
            AllowPaging="true" CellPadding="4" CellSpacing="1" GridLines="None" 
            RowStyle-HorizontalAlign="Left" PagerStyle-CssClass="pgr" 
            AlternatingRowStyle-CssClass="alt" OnPageIndexChanging="gvDownloads_PageIndexChanging">

And the code behind (it is in **VB.NET**, **C#** version is pretty much the same):

`gvDownloads` **GridView binding**:

    Dim downloadsList As List(Of Download) = GetAllDownloads()
    gvDownloads.DataSource = downloadsList
    gvDownloads.DataBind()

`PageIndexChanging` event:

    Protected Sub gvDownloads_PageIndexChanging(ByVal sender As Object, ByVal e As GridViewPageEventArgs) Handles gvDownloads.PageIndexChanging
        
    gvLicenses.DataBind()
    gvLicenses.PageIndex = e.NewPageIndex
    
    End Sub

What cna be the cause of this behavior?
