DNN 模块里导出gridview的内容到excel

在DNN模块里放了一个gridview 和一个button,然后想点击这个button导出gridview里的内容到一个excel文件,
导出的代码来自网上

 protected void cmdExport_Click(object sender, EventArgs e)
        {  
Response.Clear();
            Response.Buffer = true;
            Response.Charset = "GB2312";
            Response.AppendHeader("Content-Disposition", "attachment;filename=FileName.xls");
            Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");    
            Response.ContentType = "application/ms-excel";//设置输出文件类型为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);
            GV2.RenderControl(oHtmlTextWriter); //GV2是Gridview的ID名称
            Response.Write(oStringWriter.ToString());
            Response.End();

        }

 运行时报错:'GridView' must be placed inside a form tag with runat=server.

到网上查了解决方案为:
在aspx页面加

public override void VerifyRenderingInServerForm(Control control)
{
}
另外,ASP页面头代码需要修改为 <%@ Page Language="C#" EnableEventValidation="false">

否则会提示Gridview中的控件GV2需要在runat=server内。


但是我这是DNN模块中的ascx控件,何来aspx呢??想了很久,在default.aspx.vb加了下面的代码:

 Public Overrides Sub VerifyRenderingInServerForm(control as Control)

 End Sub

顺利解决!


posted @ 2007-10-09 16:56  Rose2007  阅读(250)  评论(0)    收藏  举报