GRIDVIEW导出EXCEL问题
由于我在GRIDVIEW是动态创建列ImageTemplate模版
可是我导出EXCEL时,这个列无法导出来。不知道哪里出现问题,
以下为代码:
public class ImageTemplate : ITemplate
{
private DataControlRowType templateType;
private string columnName;
public ImageTemplate(DataControlRowType type, string colname)
{
templateType = type;
columnName = colname;
}
public void InstantiateIn(System.Web.UI.Control container)
{
switch (templateType)
{
case DataControlRowType.Header:
Literal lc = new Literal();
lc.Text = columnName;
container.Controls.Add(lc);
break;
case DataControlRowType.DataRow://可以定义自己想显示的控件以及绑定事件
Image ig = new Image();
ig.ID = "image1";
ig.Width = 60;
ig.Height = 50;
ig.ImageUrl = columnName;
container.Controls.Add(ig);
break;
default:
break;
}
}
}
动态创建:
gvList.Columns.Clear();
TemplateField customField = new TemplateField();
customField.ShowHeader = true;
// ItemTemplate it = new ItemTemplate();
//customField.HeaderTemplate =
customField.HeaderTemplate = new ImageTemplate(DataControlRowType.Header, "款号图");//添加的列标题
ImageTemplate gvt = new ImageTemplate(DataControlRowType.DataRow, "");//空白列
customField.ItemTemplate = gvt;
this.gvList.Columns.Add(customField);
导出EXCEL:
PrepareControlForExport(ctl);
HttpContext.Current.Response.Charset = "GB2312";
HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.UTF8;
HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(FileName, System.Text.Encoding.UTF8).ToString());
HttpContext.Current.Response.ContentType = "application/ms-excel";
ctl.Page.EnableViewState = false;
System.IO.StringWriter tw = new System.IO.StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(tw);
ctl.RenderControl(hw);
HttpContext.Current.Response.Write(tw.ToString());
HttpContext.Current.Response.End();