DataGrid导出Excel的问题
private void WriteXmlToFile()
{
Response.Clear();
Response.Buffer= true;
Response.Charset="utf-8";
string filename = DateTime.Now.ToString("yyyyMMddhhmmss");
Response.AppendHeader("Content-Disposition","attachment;filename=" + filename + ".xls");
Response.ContentEncoding = System.Text.Encoding.GetEncoding("utf-8");
Response.ContentType = "application/ms-excel";
this.EnableViewState = false;
System.Globalization.CultureInfo myCItrad = new System.Globalization.CultureInfo("ZH-CN",true);
System.IO.StringWriter oStringWriter = new System.IO.StringWriter(myCItrad);
System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);
this.MyList.RenderControl(oHtmlTextWriter);
//DataGrid-----MyList
Response.Write(oStringWriter.ToString());
Response.End();
}
当MyList(DataGrid,启用了自动分页)有很多的页的时候,导出Excel文档,会出错“类型“DataGridLinkButton”的控件“MyList__ctl1__ctl1”必须放在具有 runat=server 的窗体标记内。”错误。
只有一页的时候,就不会出错。
问题点数:50、回复次数:7Top
1 楼canbo(小李飞刀)回复于 2005-05-23 23:57:27 得分 0
你没有在aspx页面里放<form runat=server>
...............
</form>Top
2 楼singlepine(小山)回复于 2005-05-24 07:56:38 得分 5
贴出前台html看看Top
3 楼dutguoyi(新鲜鱼排)回复于 2005-05-24 08:33:43 得分 5
顶Top
4 楼pm323(蚱蜢)回复于 2005-05-24 09:03:18 得分 15
应该是你的DataGrid中使用了模板列,导出Excel的时候必须把模板列设置为false。Top
5 楼missakissy(沙漠海)回复于 2005-05-24 11:28:47 得分 25
你可以显示和导出分开做,datagrid负责显示数据到页面,可通过后台存储过程执行数据导出,这样不就不用担心分页了Top
6 楼wskyo(呆呆虫)回复于 2005-05-25 13:17:51 得分 0
<input type="submit" name="Button1" value="导出Excel" id="Button1" />
Top
7 楼wskyo(呆呆虫)回复于 2005-05-26 13:48:21 得分 0
(沙漠海) ,你的方法,如何做?
(蚱蜢),我设置为false也不行。
顶Top




