datalist 模板中有服务器控件Button ,导出excel时整个页面都会导出;
如果一步步调试的会报:类型DataList的控件DataList1必须放置在具有runat=server的窗体标记内,如果没有那个Button就没问题!
我查这个错误很多解释都是要加public override void VerifyRenderingInServerForm(Control control){}函数,可是我加了不解决问题

解决方案 »

  1.   

    使用一个隐藏的datagrid绑定数据,单词隐藏的datagrid,无按钮
    或隐藏导出或打开excel模板导出数据
      

  2.   

    我的代码是
    System.Web.UI.Control dl = this.DataList1;
                HttpContext.Current.Response.Clear();
                HttpContext.Current.Response.Buffer = true;
                HttpContext.Current.Response.Charset = "GB2312 ";
                //设置文件名,及下载格式   
                HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment; filename=" + DateTime.Now.ToString("yyMMddHHmmss") + "wssp.xls");
                HttpContext.Current.Response.ContentType = "application/vnd.ms-excel";
                HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312");            dl.EnableViewState = false;
                StringWriter strWriter = new StringWriter();
                HtmlTextWriter hw = new HtmlTextWriter(strWriter);
                //设置到处内容控件(Anyone 父类Control即可)       
                dl.RenderControl(hw);
                HttpContext.Current.Response.Write(strWriter.ToString());
                //释放资源   
                strWriter.Dispose();
                hw.Dispose();
                HttpContext.Current.Response.End();
      

  3.   

    调试时在
    dl.RenderControl(hw);报错