Add a button Outside of updatepanel
<asp:button id="BtnDownload" onclick="DownloadFile_Click" runat="server" visible="false" xmlns:asp="#unknown" />
Javascript function
function DownloadFile(filepath) {
__doPostBack("<%= BtnDownload.UniqueID %>", filepath);
}
<asp:UpdatePanel ID="UpdatePanel2" runat="server" >
<ContentTemplate>
<asp:GridView ID="GridImport" runat="server" AutoGenerateColumns="false" Width="99%" Height="50%"
AllowPaging="true" GridLines="None" Style="padding: 15px; text-align: left; overflow: scroll;
font-family: Arial; font-size: 11pt;" ShowHeaderWhenEmpty="true" PageSize="4"
CssClass="Grid_LE" HeaderStyle-CssClass="Grid_Head" EmptyDataText = "No files Imported" OnPageIndexChanging="GridImport_PageIndexChanging" >
<Columns>
<asp:BoundField DataField="Text" HeaderText="File Name" />
<asp:TemplateField>
<ItemTemplate>
<asp:ImageButton ID="lnkDownload" runat="server" CommandArgument='<%# Eval("Value") %>' Style="width: 20px; height: 20px;" ImageUrl="~/Images/download.png" OnClick = "lnkDownloadNew_Click" /> <%--OnClick = "DownloadFile" --%>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<asp:ImageButton ID="lnkDelete" runat="server" CommandArgument='<%# Eval("Value") %>' Style="width: 20px; height: 20px;" ImageUrl="~/Images/cancel.png" OnClick="DeleteFile" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</ContentTemplate>
</asp:UpdatePanel>
.cs
protected void DownloadFile_Click(object sender, EventArgs e)
{
string filePath = ViewState["filepath"].ToString();
Response.ContentType = ContentType;
Response.AppendHeader("Content-Disposition", "attachment; filename=" + Path.GetFileName(filePath));
Response.WriteFile(filePath);
Response.End();
ExprotFileList();
}
protected void lnkDownloadNew_Click(object sender, EventArgs e)
{
string filePath = (sender as ImageButton).CommandArgument;
ScriptManager.RegisterStartupScript(this, typeof(ImageButton), "scr", "DownloadFile('" + filePath + "');", true);
ViewState["filepath"] = filePath;
}