将网格视图导出到 excel 文件后,我的下拉列表将不起作用
本文关键字:我的 不起作用 下拉列表 文件 excel 网格 视图 | 更新日期: 2023-09-27 17:56:20
我有一个名为 company
的下拉列表和一个名为 export to excel
的按钮和一个网格视图,我也有两个控件的更新面板,但是当我导出到 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>
请帮帮我
我认为在应该呈现更新面板内容的代码中返回XLS文件不是一个好的解决方案。为什么不重定向到包含按钮单击代码的新页面作为page_load?这样,一个全新的页面将生成文件,浏览器将要求保存它,然后它会自动重定向到您的主体页面。你能试试吗?