Try adding the scriptmanager (say---> sm1)to the page or masterpage(markup),
now declare a variable(sm) in the webpage codebehind where the grid view is present( ScriptManager sm;)
Now in the row databound event of the gridview do the following
if (e.Row.RowType == DataControlRowType.DataRow)
{
sm = ScriptManager.GetCurrent(this.Page);
sm.RegisterPostBackControl(e.Row.FindControl("btnDownload"));
}
Note: I did it in C# you can try this vb and let me know if this works