c# - 如何在 asp.net 中创建下载按钮?
问题描述
这是 Html 源代码。代码在 runat 服务器中,但也出现了该错误。
<form id="form1" runat="server">
<asp:Panel ID="Panel1" runat="server" Visible="False" Height="302px">
<center>
<table>
<tr>
<td>
PERSONAL INFORMATION
</td>
</tr>
<tr>
<td>First Name:
<asp:Label ID="fname" runat="server"></asp:Label>
</br>
Last Name:
<asp:Label ID="lname" runat="server" ></asp:Label>
</br>
Age:
<asp:Label ID="age" runat="server" ></asp:Label>
</br>
Date od Birth:
<asp:Label ID="dob" runat="server" ></asp:Label>
</br>
Address:
<asp:Label ID="add" runat="server" ></asp:Label>
</br>
Birth Place:
<asp:Label ID="bp" runat="server" ></asp:Label>
</br>
Mobile No.:
<asp:Label ID="mn" runat="server" ></asp:Label>
</td>
</tr>
</table>
<asp:Button ID="download" runat="server" OnClick="download_Click" Text="DOWNLOAD" />
</center>
</asp:Panel>
</form>
我创建了一个下载按钮并运行该按钮的此代码,但我资助了此错误“必须将'Button'类型的控件'下载'放在带有runat = server的表单标签内。”。这是我的带有code.i的类库创建一个数据库以在网页中添加详细信息。最后我把它转换成pdf。
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using iTextSharp.text;
using iTextSharp.text.pdf;
using iTextSharp.text.html.simpleparser;
using System.Web;
using System.Web.UI;
using System.Web.Security;
using System.Web.UI.WebControls;
using System.Configuration;
using System.Web.UI.WebControls.WebParts;
using System.Collections;
using System.Web.UI.HtmlControls;
using System.IO;
protected void download_Click(object sender, EventArgs e)
{
Response.ContentType = "application/pdf";
Response.AddHeader("content-disposition", "attachment;filename=DataSet.pdf");
Response.Cache.SetCacheability(HttpCacheability.NoCache);
StringWriter sw = new StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(sw);
Panel1.RenderControl(hw);
StringReader sr = new StringReader(sw.ToString());
Document pdfDoc = new Document(PageSize.A4, 10, 10, 0, 0);
HTMLWorker htmlparser = new HTMLWorker(pdfDoc);
PdfWriter.GetInstance(pdfDoc, Response.OutputStream);
pdfDoc.Open();
htmlparser.Parse(sr);
pdfDoc.Close();
Response.Write(pdfDoc);
Response.End();
}
解决方案
您有一个错字,<form>
需要在 ASP:Panel 之外,并且像错误消息状态一样,您需要使用 runat=server 设置表单标记:
<form runat="server">
<asp:Panel ID="Panel1" runat="server" Visible="False" Height="302px">
</asp:Panel>
</form>
推荐阅读
- driver - Nvidia 驱动程序不会在 Ubuntu 16.04.4 LTS 上加载
- python - Mypy 不支持的类型 Type[typeVarAlias]
- mysql - MySQL 最大值和最小值解释
- python - 如何连接两个 QLineEdit 以具有相同的输入(由 QCheckBox 控制)
- excel - 使用 openpyxl 打印公式的值
- android - 为什么我无法将位图保存为从 Android 中的 Fragment 生成的图片?
- arrays - 向数组公式添加多个条件
- haskell - Haskell 中 `putStrLn` 的基本错误。VScode 扩展 Haskelly
- c++ - 检测卡片上的水滴并计算数量及其大小 OpenCV C++
- typescript - TypeScript,类似于Required,但将所有对象属性转换为不可为空