一页只能有一个服务器端 Form 标记,不是一般问题!

葫芦的世界 2006-12-04 09:17:30
我现在能够确认我的ASPX页面中只包含有一个:<Form runat="server">

在CS文件里有以下代码:
Response.Clear();
Response.Buffer= true;
Response.Charset="gb2312";
//下面这行很重要, attachment 参数表示作为附件下载,您可以改成 online在线打开
//filename=FileFlow.xls 指定输出文件的名称,注意其扩展名和指定文件类型相符,可以为:.doc || .xls || .txt ||.htm
Response.AppendHeader("Content-Disposition","attachment;filename=FileFlow.xls");
Response.ContentEncoding=System.Text.Encoding.GetEncoding("gb2312");
//Response.ContentType指定文件类型 可以为application/ms-excel || application/ms-word || application/ms-txt || application/ms-html || 或其他浏览器可直接支持文档
Response.ContentType = "application/ms-excel";
this.EnableViewState = false;
  //二、定义一个输入流
System.IO.StringWriter oStringWriter = new System.IO.StringWriter();
oStringWriter.WriteLine("联系人姓名,手机号码);
SqlDataReader dr = DBHelper.ExecuteReader(sql);
while (dr.Read())
{
oStringWriter.WriteLine(dr["zhName"].ToString() + "," + dr["mobile"].ToString()
}
System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);

//就是下面这一行,只要在这里设置断点(Response.End())
,页面上就可以弹出保存窗口.

this.RenderControl(oHtmlTextWriter);

//在这里设置断点(Response.End()),就会出现
//System.Web.HttpException: 一页只能有一个服务器端 Form 标记 错误

Response.Write(oStringWriter.ToString());
Response.End();

...全文
1667 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
葫芦的世界 2006-12-04
  • 打赏
  • 举报
回复
以下代码成功.谢谢楼上的各位!
HttpResponse resp;
resp = Page.Response;
resp.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312");
resp.AppendHeader("Content-Disposition", "attachment;filename=filename.xls");
Response.ContentType = "application/text/csv";

System.IO.StringWriter oStringWriter = new System.IO.StringWriter();
oStringWriter.WriteLine("联系人姓名,手机号码,电子邮件,公司,职位");
resp.Write(oStringWriter);
resp.End();
TTLOVEYOU3344 2006-12-04
  • 打赏
  • 举报
回复
Response.Charset = "GB2312";
Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
string lsHeader;
Response.AppendHeader("Content-Disposition", "attachment;filename=" +HttpUtility.UrlEncode("Excel.xls",Encoding.UTF8).ToString());
Response.ContentType = "application/ms-excel";
this.EnableViewState =false;
lsHeader="";
for(int k=0;k<=dt.Columns.Count - 1;k++)
{
lsHeader=lsHeader+dt.Columns[k].ColumnName+"\t";
}
lsHeader=lsHeader+"\n";
for(int i=0;i<=dt.Rows.Count - 1;i++)
{
for(int j=0;j<=dt.Columns.Count - 1;j++)
{
lsHeader=lsHeader+(dt.Rows[i][j].ToString().Replace("\r","")).Replace("\n","")+"\t";
}
lsHeader=lsHeader+"\n";
}
Response.Write(lsHeader);
Response.End();
------------
以上是我保存为EXCEL的代码,楼主试试
knifesky 2006-12-04
  • 打赏
  • 举报
回复
你加的控件中有runat=server 的form,解决方法错误页面上应该有。

在<@page标签下加 validateRequest=false 应该就OK了
葫芦的世界 2006-12-04
  • 打赏
  • 举报
回复
我用的是类.DBHelper.我试一下.关闭数据库链接.
rickjelly2004 2006-12-04
  • 打赏
  • 举报
回复
你找一个下载文件的代码,
还有你的数据库连接关了吗?
葫芦的世界 2006-12-04
  • 打赏
  • 举报
回复
这个我我也不清楚呀.从网上找的.能不能给个把数据库中的数据保存到文件里,并进行保存.
artoksxb 2006-12-04
  • 打赏
  • 举报
回复
oHtmlTextWriter并没有涉及到控件,要这句的含义是什么this.RenderControl(oHtmlTextWriter);
葫芦的世界 2006-12-04
  • 打赏
  • 举报
回复
我的就是2.0呀.可是还有错误.
真相重于对错 2006-12-04
  • 打赏
  • 举报
回复
2.0 可以有一个以上
1.1 只能有一个
葫芦的世界 2006-12-04
  • 打赏
  • 举报
回复
我现在能够确认我的ASPX页面中只包含有一个:<Form runat="server">
可是运行出现以下错误:
System.Web.HttpException: 一页只能有一个服务器端 Form 标记
CS代码:
Response.Clear();
Response.Buffer= true;
Response.Charset="gb2312";
Response.AppendHeader("Content-Disposition","attachment;filename=FileFlow.xls");
Response.ContentEncoding=System.Text.Encoding.GetEncoding("gb2312");
Response.ContentType = "application/ms-excel";
this.EnableViewState = false;
System.IO.StringWriter oStringWriter = new System.IO.StringWriter();
oStringWriter.WriteLine("联系人姓名,手机号码);
SqlDataReader dr = DBHelper.ExecuteReader(sql);
while (dr.Read())
{
oStringWriter.WriteLine(dr["zhName"].ToString() + "," + dr["mobile"].ToString()
}
System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);

//就是下面这一行,只要在这里设置断点(Response.End()),页面上就可以弹出保存窗口,也就是说不会出错错误.

this.RenderControl(oHtmlTextWriter);

//在这里设置断点(Response.End()),就会出现
//System.Web.HttpException: 一页只能有一个服务器端 Form 标记 错误

Response.Write(oStringWriter.ToString());
Response.End();

xray2005 2006-12-04
  • 打赏
  • 举报
回复
?

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧