.ashx文件中输出文件的问题
想点击导出按钮,实现将数据导出为excel,于是做了一个.ashx文件(用于接收导出请求,并执行导出)
toexcel.ashx代码
C# code
...
DataSet ds1 = Member.GetMembers();//获取要导出的数据
context.Response.Clear();
context.Response.Charset = "";
context.Response.ContentType = "application/vnd.ms-xls";
StringWriter stringWrite = new StringWriter();
HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite);
DataGrid dg = new DataGrid();
dg.DataSource = ds1;
dg.DataBind();
dg.RenderControl(htmlWrite);
context.Response.AddHeader("content-disposition", "attachment;filename=" + HttpUtility.UrlEncode("abcdefg.xls"));
context.Response.Write(stringWrite.ToString());
context.Response.End();
这段代码如果在服务器按钮事件中写,则可以成功导出excel文件,但在这里
却只输出了一个页面,里面包含了ds1里的所有数据,外加一个“确定”按钮!
不知怎么回事,请指教!
------解决方案--------------------http://www.cnblogs.com/wrz923/archive/2008/07/17/1245002.html
接分啊!! 详细的很啊
------解决方案--------------------用Response.WriteFile()
------解决方案--------------------下载文件的四种方法
------解决方案--------------------http://www.cnblogs.com/wrz923/archive/2008/07/17/1245002.html
这个的不错
------解决方案--------------------直接写一个aspx页面,之后把这个代码复制过去,之后做一个链接就可以了.
下载和ajax貌似是没啥联系的, 难道我out了.
------解决方案--------------------下载本来就不会刷新页面,不知你用AJAX的用意是什么
------解决方案--------------------
------解决方案--------------------
使用ajax应该也可以
或许这里dg.RenderControl(htmlWrite);
不能导出,毕竟应该是页面呈现的控件才可以导吧
所以加之楼上的拼datatable方法结合你的方法实现吧
------解决方案--------------------lz你可以这样嘛。你先在服务器端生成excle,然后下载,下载后删除,
因为本地下载的提示框是js的进程阻涉。页面不刷新
------解决方案--------------------