导出csv文件的方式跟网上常用方式一样,将一个字符串或一个流输出来。我里面用到了很多框架,包括导出csv文件的页面也是程序中动态塞入一个iframe而生成的页面。无论点击打开、保存、取消都会造成当前页面无反映,但是其他框架的页面都能动。Response.end()后是不是页面终止输出了,所以页面没反映。网上有人说导出后框架的其他页面没反应,而我的又是当前页。奇怪,不知道咋办了,想让高手指点一二。感激不尽!谢谢

解决方案 »

  1.   

    不知道你用什么办法。我用下面的办法是没有问题。在项目中我们经常会遇到要求将一些数据导出成Excel或者Word表格的情况,比如中国移动(我是中国移动用户)网上查话费的页面中就有一个导出到Excel的功能,光大网上银行查看历史明细也有这些功能....,原本以为这个问题不难的,不过看到网上经常有朋友问,于是我整理了一下,供大家参考。 需要说明的是:在asp.net2.0环境下,VerifyRenderingInServerForm(Control control)这个方法不override的话,则会出现“错误提示:类型“GridView”的控件“GridView1”必须放在具有 runat=server 的窗体标记内”这个错误。
    http://blog.csdn.net/zhoufoxcn/archive/2008/05/16/2450642.aspx
    只是设置ContentType不同罢了。
      

  2.   

    周公你好,谢谢你的回复:
        可能上面我没写清楚。我的导出csv是这样的:下面是大概的代码    response.clear();
        Response.Charset = "GB2312";
        Response.AppendHeader("Content-Disposition", "attachment;filename=FileName.xls");
        Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
        Response.ContentType = "application/ms-excel";
        stringBuilder strBuild=new stringBuilder();
        strBuild.append("列头");
        strBuild.append("/r/n");
        //数据来源不是控件,我这里是一个缓存起来的dataTable,自己组织数据到strBuild。然后
        response.write(strBuild);
        response.end();
        
    其实和网上介绍的差不多。但是就是出现上面的问题。不知道为什么。您上面说的方法在以前的项目里面有成功实施过。但是这次跟由控件导出数据不一样。期待您的再次光临,谢谢