我的程序是B/S架构,基本情况是,单击【查询】按钮时,
用前台控件table显示数据,然后将table中的数据导出到EXCEL。现在的问题是,单击【Excel导出】按钮之后,导出的只有之前写好的表头,
而动态生成的表格行数据并没有导出到excel中。请问这是怎么个情况?恳请高手指点指点,谢谢!基本代码如下:protected void Button1_Click(object sender, EventArgs e)
{
HttpContext.Current.Response.Clear();
HttpContext.Current.Response.Buffer = true;
HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename=Excel.xls");
HttpContext.Current.Response.Charset = "UTF-8";
HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.Default;
HttpContext.Current.Response.ContentType = "application/ms-excel";//image/JPEG;text/HTML;image/GIF;vnd.ms-excel/msword
this.tbData.Page.EnableViewState = false;
System.IO.StringWriter tw = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter(tw);
this.Button2_Click(sender, e);
this.tbData.RenderControl(hw);
this.tbData.RenderControl(hw);
HttpContext.Current.Response.Write(tw.ToString());
HttpContext.Current.Response.End();
}
用前台控件table显示数据,然后将table中的数据导出到EXCEL。现在的问题是,单击【Excel导出】按钮之后,导出的只有之前写好的表头,
而动态生成的表格行数据并没有导出到excel中。请问这是怎么个情况?恳请高手指点指点,谢谢!基本代码如下:protected void Button1_Click(object sender, EventArgs e)
{
HttpContext.Current.Response.Clear();
HttpContext.Current.Response.Buffer = true;
HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename=Excel.xls");
HttpContext.Current.Response.Charset = "UTF-8";
HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.Default;
HttpContext.Current.Response.ContentType = "application/ms-excel";//image/JPEG;text/HTML;image/GIF;vnd.ms-excel/msword
this.tbData.Page.EnableViewState = false;
System.IO.StringWriter tw = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter(tw);
this.Button2_Click(sender, e);
this.tbData.RenderControl(hw);
this.tbData.RenderControl(hw);
HttpContext.Current.Response.Write(tw.ToString());
HttpContext.Current.Response.End();
}
调试时跟踪下,看看有没有在tbData在RenderControl时有没有绑定数据。
{
Export("application/ms-excel", "报表.xls");
} private void Export(string FileType, string FileName)
{
Response.Charset = "GB2312";
Response.ContentEncoding = System.Text.Encoding.UTF7;
Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(FileName, Encoding.UTF8).ToString());
Response.ContentType = FileType;
this.EnableViewState = false;
StringWriter tw = new StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(tw);
GridView1.RenderControl(hw);
Response.Write(tw.ToString());
Response.End();
}
调试发现,this.tbData.RenderControl(hw); 中的table(tbData)只有之前写的表格行,
而没有数据,这是为什么啊?但是前台的table是有数据显示的啊???
{
List<Entity.NewsLetter> listLetter = BLL.NewsLetter.NewsLetterInstance.GetLetterList();
using (StreamWriter sw = new StreamWriter(Server.MapPath("NewsLetter.xls")))
{
for (int i = 0; i < listLetter.Count; i++)
{
sw.WriteLine(listLetter[i].Email);
}
sw.Flush();
}
Response.Redirect("NewsLetter.xls");
}