随笔-22  评论-32  文章-0  trackbacks-0
以前用GridView导出Excel没碰到什么问题,(注: enableEventValidation  属性必须设置为 "false"——直接在页面设置或在配置文件里设置),但采用Ajax后就出问题了,错误提示:Details Error parsing near '<div><table cells'.

原因:
    导出Excel的按钮放置在<UpdatePanel></UpdatePanel>里面,点击按钮后只输出了“<div><table   cells”,生成的容器表--html代码被截断了

解决方法:
        放到<UpdatePanel></UpdatePanel>外面(注:不要放在任何的<UpdatePanel>     </UpdatePanel>中)

以下为导出Excel方法:

    /// <summary>
    /// 重载方法——VerifyRenderingInServerForm  (必须添加)
    /// </summary>
    /// <param name="control"></param>
    public override void VerifyRenderingInServerForm(Control control)
    {

    }

    /// <summary>
    /// 生成报表
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void ImageButtonexcel_Click(object sender, EventArgs e)
    {
        Response.ClearContent();

        Response.AddHeader("content-disposition", "attachment; filename=MyExcelFile.xls");

        Response.ContentType = "application/excel";

        StringWriter sw = new StringWriter();

        HtmlTextWriter htw = new HtmlTextWriter(sw);

        GridView1.RenderControl(htw);

        Response.Write(sw.ToString());

        Response.End();
    }
posted on 2007-08-24 18:57 music000 阅读(510) 评论(5)  编辑 收藏 所属分类: ASP.NET

评论:
#1楼  2007-10-19 04:22 | 大款 [未注册用户]
垃圾!垃圾!
到了你也没说出UpdatePanel下面Gridview怎样导出!!
  回复  引用    
#2楼 [楼主] 2007-10-29 09:35 | music000      
解决方法:
放到<UpdatePanel></UpdatePanel>外面(注:不要放在任何的<UpdatePanel> </UpdatePanel>中)

  回复  引用  查看    
#3楼  2007-11-10 08:40 | cassava [未注册用户]
放在里面也是可以的,调用脚本form1.submit()提交整个页面,在提交之前付一个隐含的input标志,后台判断这个标志来导出就可以了
  回复  引用    
#4楼  2007-12-27 10:40 | jillzhang      
晕倒,你那种解决方法地球人都知道
  回复  引用  查看    
#5楼 [楼主] 2008-01-04 16:05 | music000      
啊啊啊?
我这个地球人知道的好晚啊!
  回复  引用  查看    

标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2007-08-25 13:02 编辑过
"五向定位"职业成长路线公开课(上海、南京、大连)
Google站内搜索


相关链接: