Feedback

C# - WebControl in einen String rendern.

Veröffentlicht von am 15.06.2007
(0 Bewertungen)
Hier eine Methode, um ein WebControl, oder ein HtmlControl in einen String zu render
public string RenderControl2String(Control ctrl)
{
  System.Text.StringBuilder sb = new System.Text.StringBuilder();
  System.IO.StringWriter sw = new System.IO.StringWriter(sb);
  System.Web.UI.HtmlTextWriter tw = new HtmlTextWriter(sw);
  ctrl.RenderControl(tw);
  return sb.ToString();
}

2 Kommentare zum Snippet

Nicole schrieb am 14.11.2007:
Guten Abend,

Ich habe in Visual Studio 2005 eine .aspx Seite auf dem sich ein Panel mit Controls befinden (Controlbox und sämtliche Textfelder)

Diese Methode hier mit Hilfe der PDf Komponente iText, gibt mir die Inhalte der Controls (also den Text) in einer PDF Datei wieder (siehe unten). Jedoch möchte ich, dass in dieser PDF Datei auch die Controls erscheinen und nicht nur der jeweilige Inhalt.

Wie muss ich denn meinen Code umändern damit das klappt?
Reicht es, wenn ich mein Panel rendere oder muss ich die ganzen Controls rendern? ich weiß einfach nicht wie ich meinen Code umändern muss, damit es klappt und hoffe, dass ihr mir helfen könnte.

Danke




Protected Sub makePDF(ByVal filename As String)

Dim Document As Document = New Document()

Dim writer As PdfWriter = New PdfWriter

Dim fontHelv As Font = New Font(Font.HELVETICA, 12, Font.NORMAL)

Dim cb As PdfContentByte

Dim bf As BaseFont

writer = PdfWriter.getInstance(Document, New FileStream(filename, FileMode.Create))

Document.setMargins(43, 0, 35, 0)

Document.open()

Document.add(New Paragraph(48, " " + Label1.Text, fontHelv))

Document.add(New Paragraph(38, lblAngabenZumNeuger„t.Text, fontHelv))

cb = writer.getDirectContent()

bf = BaseFont.createFont(BaseFont.HELVETICA, BaseFont.CP1252, BaseFont.NOT_EMBEDDED)

cb.setFontAndSize(bf, 7)

cb.beginText()

cb.setTextMatrix(480, 760)

cb.showText(lblId.Text)


Jürgen Gutsch schrieb am 14.11.2007:
Hallo Nicole,

ich bezweifle, das iTextSharp (ich denke diese nutzt du, und nicht iText) alle Controlls darstellen kann, zumindest aus einem HTML String heraus. iTextSharp ist, oder wahr es bis vor ein Jahr, sehr einfach gestrickt.

Hat dir die Diskussion auf ASP.NET Zone noch nicht weitergeholfen?
http://www.aspnetzone.de/forums/thread/187534.aspx
(Ich habe dir dort ebenfalls geantwortet)
 

Logge dich ein, um hier zu kommentieren!