Hi ,
I am trying to export the contents in a asp.net panel to a pdf file using the itextsharp.dll, it works in a asp.net web application but in a dotnetnuke module a runtime error occurs as
Control of type 'Panel' must be placed inside a form tag with runat=server.
Can someone please help me solve this error
The code to export is like this
protected void btnExport_Click(object sender, EventArgs e)
{
Response.ContentType = "application/pdf";
Response.AddHeader("content-disposition", "attachment;filename=Panel.pdf");
Response.Cache.SetCacheability(HttpCacheability.NoCache);
StringWriter sw = new StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(sw);
pnlData.RenderControl(hw);
StringReader sr = new StringReader(sw.ToString());
Document pdfDoc = new Document(PageSize.A4, 10f, 10f, 100f, 0f);
HTMLWorker htmlparser = new HTMLWorker(pdfDoc);
PdfWriter.GetInstance(pdfDoc, Response.OutputStream);
pdfDoc.Open();
htmlparser.Parse(sr);
pdfDoc.Close();
Response.Write(pdfDoc);
Response.End();
}
This is the View.ascx
<%@ Control Language="C#" Inherits="DotNetNuke.Modules.SensorGroupBill.View" AutoEventWireup="false"
CodeBehind="View.ascx.cs" %>
<%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %>
<div id="div1" runat="server">
<asp:Panel ID="pnlData" runat="server">
<table>
<tr>
<td>
<asp:Label ID="lblGroup" runat="server" Text="GroupName : "></asp:Label>
</td>
<td>
<asp:Label ID="lblGroupName" runat="server"></asp:Label>
</td>
</tr>
<tr>
<td>
<asp:Label ID="lblSensors" runat="server" Text="SensorName : "></asp:Label>
</td>
<td>
<asp:Label ID="lblSensorName" runat="server"></asp:Label>
</td>
</tr>
<tr>
<td>
<asp:Label ID="lblUnits" runat="server" Text="UnitsName : "></asp:Label>
</td>
<td>
<asp:Label ID="lblUnitsName" runat="server"></asp:Label>
</td>
</tr>
<tr>
<td>
<asp:Button ID="btnExport" runat="server" Text="Export" OnClick="btnExport_Click" />
</td>
</tr>
</table>
</asp:Panel>
<asp:Label ID="lblMessage" ForeColor="Red" runat="server"></asp:Label>
</div>