现在的问题是控件明明是已经放在FORM里面现在贴上我的代码,希望大家指点前台代码
<form id="form1" runat="server">
<asp:GridView ID="gvw_test" runat="server">
</asp:GridView>
<div>
<asp:Button ID="btn_daochu" runat="server" onclick="btn_daochu_Click" Text="导出EXCEL表" />
</div>
</form>
后台代码 protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
gvw_test.DataSource = new memberBLL().SelectAll();
gvw_test.DataBind();
}
}
protected void btn_daochu_Click(object sender, EventArgs e)
{
Export("application/ms-excel", "测试报表.xls");
}
public void ExcelOut(GridView gv)
{
if (gv.Rows.Count > 0)
{
Response.Clear();
Response.ClearContent();
Response.AddHeader("Content-Disposition", "attachment; filename=" + DateTime.Now.ToString("_yyyyMMdd_HHmmss") + ".xls");
Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
Response.ContentType = "application/ms-excel";
StringWriter sw = new StringWriter();
HtmlTextWriter htw = new HtmlTextWriter(sw);
gv.RenderControl(htw);
Response.Write(sw.ToString());
Response.Flush();
Response.End();
}
else
{
Response.Write("没有数据");
}
}
<form id="form1" runat="server">
<asp:GridView ID="gvw_test" runat="server">
</asp:GridView>
<div>
<asp:Button ID="btn_daochu" runat="server" onclick="btn_daochu_Click" Text="导出EXCEL表" />
</div>
</form>
后台代码 protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
gvw_test.DataSource = new memberBLL().SelectAll();
gvw_test.DataBind();
}
}
protected void btn_daochu_Click(object sender, EventArgs e)
{
Export("application/ms-excel", "测试报表.xls");
}
public void ExcelOut(GridView gv)
{
if (gv.Rows.Count > 0)
{
Response.Clear();
Response.ClearContent();
Response.AddHeader("Content-Disposition", "attachment; filename=" + DateTime.Now.ToString("_yyyyMMdd_HHmmss") + ".xls");
Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
Response.ContentType = "application/ms-excel";
StringWriter sw = new StringWriter();
HtmlTextWriter htw = new HtmlTextWriter(sw);
gv.RenderControl(htw);
Response.Write(sw.ToString());
Response.Flush();
Response.End();
}
else
{
Response.Write("没有数据");
}
}
解决方案 »
- 再次求助Exception from HRESULT: 0x800A03EC的错误原因!!!
- 这不是引诱... http://topic.csdn.net/u/20090226/15/e123b8ec-7aa2-4271-afa6-80ae61ecb632.html?seed=97962757
- 一个textbox js的onchange事件出发一个webservice,onchange一次触发一次webservice方法,如果快速change的话就会不断反复调用,问题!
- webService 和 flash 的 秘密~!
- 给图片添加图片水印的问题,急
- 三层架构的web 工程, 在类里面, 什么时候应该用到静态方法?
- 占位符
- 关于session_onend的BUG
- 菜菜地问:如何在当前窗体下打开另一个web窗体?在线等....
- 请教各位大侠一个奇怪的调试问题
- 谁会用vs做一个简单的管理系统 比如就业管理系统 哥们 谢啦
- html控件MaxLenth在谷歌浏览器的问题
应该是
ExcelOut(this.gvw_test);才对
当点击导出EXCEL报表的时候出现的错误是类型“GridView”的控件“gvw_test”必须放在具有 runat=server 的窗体标记内。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Web.HttpException: 类型“GridView”的控件“gvw_test”必须放在具有 runat=server 的窗体标记内。源错误:
行 45: StringWriter sw = new StringWriter();
行 46: HtmlTextWriter htw = new HtmlTextWriter(sw);
行 47: gv.RenderControl(htw);
行 48: Response.Write(sw.ToString());
行 49: Response.Flush();
源文件: d:\我的资料库\Documents\Visual Studio 2008\WebSites\comeback\Default.aspx.cs 行: 47