DevTrain Startseite Advanced Developers Conference vom 14.-15. Februar 2011  
  
  
SUCHEN:  
ARTIKEL ONLINE: 525   

Kategorien
.NET
Datenbanken
Web
XML

Allgemein
Camp
Foren
Events
Persönliche Einstellungen
Registrieren
Prämien Shop
Kontakt
Impressum
Über DevTrain

Autoren


   Autor: Hannes Preishuber Artikel Drucken
        
Daten aus Website per HTML eMail senden

Oft sieht man in Websites interessanten Text den man evtl einen Kollegen zur Verfügung stellen möchte. Das Ziel ist es also eine HTML Mail zu erzeugen mit einem definierten Ausschnitt aus der Website. Für unser Beispiel stellen wir Daten per Gridview dar und versehen diese noch mit einer Überschrift. Um nur einen Ausschnitt der Website zu versenden wird der relevante Teil innerhalb eines Panel Control platziert.

<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="per mail senden" />

<asp:Panel ID="Panel1" runat="server" Height="50px" Width="125px">

Wichtige Daten:<br />

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="CustomerID" EnableViewState="false"

DataSourceID="SqlDataSource1" EmptyDataText="Es sind keine Datens?tze zum Anzeigen vorhanden.">

<Columns>....

Zunächst betrachtet der Benutzer die Website und beim Click auf den Button wird eine Email versendet. Diese muss das Format HTML haben. Hier auf DevTrain gibt es einige Artikel die sich mit den Details der in ASP.NET 2.0 neuen Klasse SMTPClient beschäftigt.

Ich fokusiere mich auf die Methode RenderControl die es erlaubt den HTML Code eines Controls, hier des Panels und Childelemente, zu erzeugen.

Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs)

Dim SB As New StringBuilder()

Dim SW As New System.IO.StringWriter(SB)

Dim html As New HtmlTextWriter(SW)

Panel1.RenderControl(html)

Dim msg As New System.Net.Mail.MailMessage("from@xxx.de", "to@xxx.de")

msg.IsBodyHtml = True

msg.Body = SB.ToString()

msg.Subject = "Mail von Website"

Dim mymail As New System.Net.Mail.SmtpClient()

mymail.Send(msg)

End Sub

Falls dann ein Fehler auftaucht

Das Steuerelement GridView1 vom Typ GridView muss in einem Formulartag mit runat=server positioniert werden.

muss folgender Code in die Seite eingefügt werden

Public Overrides Sub VerifyRenderingInServerForm(ByVal Ctrl As Control)

End Sub

Das ist sozusagen ein Bugfixing.

DevTrain Camp - Schneller zum .NET 3.5 Developer
 
Verwandte Artikel      Verlinkte Dokumente
    Keine verknüpften Dokumente
    Keine Links vorhanden

  Erfasst am: 23.11.2006
  Gültig bis: 21.02.2007
7 Ratings
Bewertung: 48,6%
schlecht    sehr gut  

 
© Copyright 2007 ppedv AG