将gridview导出到excel文件后,我的下拉列表无法正常工作?

时间:2016-07-09 16:02:04

标签: c# asp.net asp.net-mvc sharepoint

我有一个名为company的下拉列表和一个名为export to excel的按钮和一个gridview,我也有一个更新面板用于两个控件但是当我导出到excel下拉列表时不再工作,即使想要导出2次我也不能没有刷新页面。

我的导出代码:

   protected void Button1_Click(object sender, EventArgs e)
   {

      // HttpContext.Current.Response.Clear();
       HttpContext.Current.Response.AddHeader(
           "content-disposition", string.Format("attachment; filename={0}", "Kontratat-" + DateTime.Now.ToShortDateString() + ".xls"));
       HttpContext.Current.Response.ContentType = "application/vnd.ms-excel";


       StringWriter sw = new StringWriter();
       HtmlTextWriter hw = new HtmlTextWriter(sw);


       HtmlForm frm = new HtmlForm();
       hw.WriteLine("<center><b><u><font size='5'>Kontratat</font></u></b></center>");//will be displayed in excel as a heading.
       GridView1.Parent.Controls.Add(frm);
       frm.Controls.Add(GridView1);
       frm.RenderControl(hw);
       HttpContext.Current.Response.Write(sw.ToString());
       HttpContext.Current.Response.Flush();
       HttpContext.Current.Response.End();

   }            

和我的aspx代码

<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<Triggers>
    <asp:AsyncPostBackTrigger ControlID="DropDownList1" EventName="SelectedIndexChanged" />
   <asp:PostBackTrigger ControlID="Button1" />
</Triggers>
<ContentTemplate>
    <asp:GridView ID="GridView1" runat="server" BackColor="#CCCCCC" BorderColor="#999999" BorderStyle="Solid" BorderWidth="1px" CellPadding="4" CellSpacing="2" ForeColor="Black">
    </asp:GridView>
</ContentTemplate>

请帮助我

1 个答案:

答案 0 :(得分:0)

我认为在应该呈现更新面板内容的代码中返回一个XLS文件并不是一个好的解决方案。为什么不重定向到包含按钮代码的新页面单击为page_load?这样一个全新的页面将生成该文件,浏览器将要求保存它,它将自动重定向到您的主页面。你能这样试试吗?