首页 新闻 会员 周边 捐助

asp.net gridview导出excel表格时 不能弹出选择保存地址的对话框

0
悬赏园豆:20 [待解决问题]

本人刚开始接触.net,基础薄弱,望各位前辈多多指教!

目前,我要输出gridview的内容生成excel表格。expor按钮在content.aspx页面,content.aspx页面嵌套content.ascx,gridview就在content.ascx里面。

参考了网上的代码,却始终不能成功,无法弹出让用户选择存储位置的对话框。

前端代码:

 <asp:UpdatePanel ID="UpdatePanel1" runat="server">
        <ContentTemplate>
        <asp:Button ID="btnExcel" ClientIDMode="Static" runat="server" Text="Export Excel" onclick="btnExport_Click" 
        style="font-size:14pt;text-align:center;font-weight:bolder;margin-top:2px;"/>
        <uc2:ContentAssignmentControl ID="ucContentAssignmentControl" runat="server" />
        <br />
        </ContentTemplate>
        <Triggers>
        <asp:AsyncPostBackTrigger ControlID="btnExcel" EventName="Click" />
        </Triggers>
    </asp:UpdatePanel>

后台代码

public override void VerifyRenderingInServerForm(System.Web.UI.Control control)
        {
            //
        }
public void btnExport_Click(object sender, EventArgs e)
        {
            Response.ClearContent();
            Response.Buffer = true;
            Response.AddHeader("content-disposition", "attachment; filename=MyExcelFile.xls");
            Response.ContentType = "application/vnd.ms-excel"; 
            Response.ContentEncoding = System.Text.Encoding.UTF8;
            StringWriter sw = new StringWriter();
            HtmlTextWriter htw = new HtmlTextWriter(sw);
            GridView gv = (GridView)ucContentAssignmentControl.FindControl("gvContentAssign1");
            if (gv.Rows.Count > 0)
            {
                gv.Columns[1].HeaderText = "勿駁";
                gv.Columns[10].Visible = false;
                gv.Columns[11].Visible = false;
            }
            gv.RenderControl(htw);
            Response.Write(sw.ToString());
            Response.End();
            
        }

在page我也设置了

 EnableEventValidation = "false"

虽然编译能通过,但是点击按钮却无任何反应,也不抱错。不过在浏览器中F12查看,却看到错误信息:Sys.WebForms.PageRequestManagerParserErrorException: Sys.WebForms.PageRequestManagerParserErrorException: The message received from the server could not be parsed.

那位大神前辈能教教我应该怎么处理阿?倒腾了两天了,还是没有解决

rivahuang的主页 rivahuang | 初学一级 | 园豆:91
提问于:2015-12-07 18:31
< >
分享
所有回答(1)
0

asp:UpdatePanel 是采用的Ajax提交吗。不能直接用Ajax下载文件。不用asp:UpdatePanel试试看。

Gamain | 园豆:357 (菜鸟二级) | 2015-12-23 10:28
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册