我有一个名为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>
请帮助我
答案 0 :(得分:0)
我认为在应该呈现更新面板内容的代码中返回一个XLS文件并不是一个好的解决方案。为什么不重定向到包含按钮代码的新页面单击为page_load?这样一个全新的页面将生成该文件,浏览器将要求保存它,它将自动重定向到您的主页面。你能这样试试吗?