vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Blitzschnelles Erstellen von grafischen Diagrammen!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

ASP.NET, WebServices u. Remoting
E-Mail Anbindung von UserControls 
Autor: ChrisBisch
Datum: 03.09.12 16:29

Hallo Forum,

ich habe ein Problem wo ich einfach auf dem schlauch stehe. Ich hoffe Ihr könnt mir weiter helfen!
Also folgendes, ich habe einen Warenkorb, den ich per E-Mail versenden möchte.
Egal wie ich es ausprobiere es klappt nicht.

Der Warenkorb wird in einer .ascx gespeichert. Ich möchte nun aus der E-Mail Prozedur den Warenkorb dem E-mail body anhängen

mm.Body = "

Artikel:

" + Warenkorb.Text + ""


Aber so klappt das irgendwie nicht.
Wäre echt dankbar über eine hilfe, es ist der letzte Fehler!


Schönen abend noch
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: E-Mail Anbindung von UserControls 
Autor: Micke
Datum: 04.09.12 09:40

ich denke du mußt den response deines ashx nehmen, dann hast du genau das was du im web "siehst".

Micke

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: E-Mail Anbindung von UserControls 
Autor: ChrisBisch
Datum: 04.09.12 10:02

Hey Micke,

danke erst einmal.
Ich habe also probiert über Response an die Daten zu kommen, aber das klappt nicht.
Ich glaube ja das ich hier im Syntax einfach ein paar Fehler mache.

Hier der Code:

ShoppingBasket.Response.??

Hat vielleicht jemand eine Idee?

Thanks
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: E-Mail Anbindung von UserControls 
Autor: Micke
Datum: 04.09.12 12:16

wäre es nicht einfacher du läßt den Author des Warenkorbes und der webseiten dir sagen was du machen sollst ?
dieser code, genauso wie der aus dem Anfangspost ist Nonsens.

Micke

Beitrag wurde zuletzt am 04.09.12 um 12:18:11 editiert.

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: E-Mail Anbindung von UserControls 
Autor: ModeratorDaveS (Moderator)
Datum: 04.09.12 16:19

Ich wage nach vielen Jahren einen kurzen Ausflug in den Asp Bereich. Man kann ein HtmlTextWriter anlegen (StringWriter verwenden) und mit .RenderControl() die Html rendern. Wenn Eingabecontrols vorhanden sind wird's ein wenig komplizierter. Immerhin so meine Recherchen im Internet.

________
Alle Angaben ohne Gewähr. Keine Haftung für Vorschläge, Tipps oder sonstige Hilfe, falls es schiefgeht, nur Zeit verschwendet oder man sonst nicht zufrieden ist

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: E-Mail Anbindung von UserControls 
Autor: Micke
Datum: 04.09.12 18:31

stimmt ja auch völlig, und der "Response" ist das was der HtmlTextWriter liefert.
ich war mir nur nicht sicher, ob das beim Poster mehr als Fragezeichen hervorruft.

Micke

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: E-Mail Anbindung von UserControls 
Autor: ChrisBisch
Datum: 04.09.12 18:54

Hey DaveS und danke,
und Hallo Micke,

das war das Richtige Stichwort.
Ich werde mich gleich mal ran machen, Thanks.

Und Micke was ist das den?
Kannst mich ja wenigstens Fragen, ob der Code von mir ist!
Und wenn Dir noch Codezeilen Fehlen zum verständniss, kann man das auch anders sagen als Zitat: Nonsens...
Als Nonsens habe ich nämlich Dein Post empfunden.

Behandle jeden Menschen so wie Du selbst behandelt werden willst(Der menschliche Kategorische Imperativ).

Danke Daves nochmal
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: E-Mail Anbindung von UserControls 
Autor: ChrisBisch
Datum: 09.09.12 18:28

Hallo Forum,

nachdem mir DaveS den Hinweis gegeben hat mit dem HtmlTextWriter, Render... zu arbeiten, habe ich bisher folgendes gemacht:

Die vb der E-Mail Klasse und der Render Klasse:

Public Module Extensions
    <Extension()> _
    Public Function RenderAsString(ByVal Ctrl As System.Web.UI.UserControl) As _
    String
        Dim Sb As New StringBuilder()
 
        Using Sw As New System.IO.StringWriter(Sb)
            Using Htw As New HtmlTextWriter(Sw)
                Ctrl.RenderControl(Htw)
            End Using
        End Using
 
        Return Sb.ToString
    End Function
End Module
 
Partial Class Bestellen
    Inherits System.Web.UI.Page
 
    Protected Sub btnCOD_Click(ByVal sender As Object, ByVal e As _
      System.EventArgs) Handles btnCOD.Click
        Dim Ctrl As UserControl = DirectCast(Me.LoadControl( _
        "~/ShoppingBasket.ascx"), UserControl)
        Dim CtrlString As String = Ctrl.RenderAsString()
     Const ToAddress As String = "E-Mail Adresse"
        Dim mm As New MailMessage(EMail.Text, ToAddress)
        mm.Subject = Name.Text
        mm.Body = "<html><body runat=server><br><br><h2>Bestellung von" & _
          "der Webseite</h2><br><br>" + CtrlString + "</body></html>"
        mm.IsBodyHtml = True
 
        Dim smtp As New SmtpClient
 
        smtp.Send(mm)
    End Sub
Leider bekomme ich jtzt folgende Fehlermeldung:
System.Web.HttpException: Das Steuerelement BasketGrid vom Typ GridView muss in einem Formulartag mit runat=server positioniert werden.

Hat jemand eine Idee woran das liegt?

Thanks
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: E-Mail Anbindung von UserControls 
Autor: ModeratorDaveS (Moderator)
Datum: 10.09.12 10:22

Wie gesagt, wenn du Eingabefelder (etwa TextBoxen) hast wird's schwieriger. Eventuell musst du die ganze Page rendern. Da sind meine aktuellen ASP Kenntnisse mehr oder weniger erschöpft.

________
Alle Angaben ohne Gewähr. Keine Haftung für Vorschläge, Tipps oder sonstige Hilfe, falls es schiefgeht, nur Zeit verschwendet oder man sonst nicht zufrieden ist

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: E-Mail Anbindung von UserControls 
Autor: ChrisBisch
Datum: 10.09.12 10:29

Hey DaveS,

danke für Deine Antwort, es sind in dem ShopppingBasket aber nur ein GriedView(wird als Tabel angezeigt).

Hat velleicht noch jemand eine Idee?
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: E-Mail Anbindung von UserControls 
Autor: ModeratorDaveS (Moderator)
Datum: 10.09.12 10:58

GrudView muss anscheinend auch innerhalb Form-Tags sein. Es gibt hier ein Beispiel wie man das eventuell umgehen kann http://forums.asp.net/t/1016960.aspx/1.

________
Alle Angaben ohne Gewähr. Keine Haftung für Vorschläge, Tipps oder sonstige Hilfe, falls es schiefgeht, nur Zeit verschwendet oder man sonst nicht zufrieden ist

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: E-Mail Anbindung von UserControls 
Autor: Micke
Datum: 10.09.12 12:16

Zitat:

Dave wrote: Eventuell musst du die ganze Page rendern.


was spricht da dagegen ? Daß es nur 1 Gridview ist ?

Micke

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: E-Mail Anbindung von UserControls 
Autor: ChrisBisch
Datum: 14.09.12 09:40

Hallo Leute,

erst mal danke DaveS, vielen dank!
Und für alle die es interessiert, der Fehler der kam: "Das Steuerelement BasketGrid vom Typ GridView muss in einem Formulartag mit runat=server positioniert werden. "
ist ein Bug in Visual Studio gewesen. In der Seitendirektive muss folgendes eingetragen werden:
EnableEventValidation="false"
dann klappt es auch mit dem Nachbarn.

Allerdings bekam ich dann nur eine E-Mail mit leerem Warenkob, was aber an meinem Fehler lag, da ich ja nur den Warenkorb eingebunden habe, und nicht das aktuell erstellte GriedView.
Dank DaveS netten Link habe ich hier aber auch eine Lösung gefunden, die ich allen die ein ähnliches Problem haben nicht vorenthalten möchte:

Partial Class Bestellen
    Inherits System.Web.UI.Page
    ' render gridview als HTML
    Public Function RenderGridView() As String
        Dim writer As New StringWriter
        Dim htmlWriter As New HtmlTextWriter(writer)
        Try
            ShoppingBasket.RenderControl(htmlWriter)
        Catch ex As HttpException
 
        End Try
 
        Return writer.ToString()
    End Function
    Public Overrides Sub VerifyRenderingInServerForm(ByVal control As _
      System.Web.UI.Control)
 
    End Sub
    Protected Overrides Sub Render(ByVal writer As System.Web.UI.HtmlTextWriter)
        If Page IsNot Nothing Then
            Page.VerifyRenderingInServerForm(Me)
        End If
        MyBase.Render(writer)
    End Sub
    Protected Sub btnCOD_Click(ByVal sender As Object, ByVal e As _
      System.EventArgs) Handles btnCOD.Click
       Const ToAddress As String = "E-Mail Adresse"
        Dim mm As New MailMessage(EMail.Text, ToAddress)
        mm.Subject = Name.Text
        mm.Body = "<html><body><br><br><h2>Bestellung von der Webseite</h2>"</body></html>"
        mm.Body += RenderGridView()
        mm.IsBodyHtml = True
 
        Dim smtp As New SmtpClient
 
        smtp.Send(mm)
Und siehe da, der Warenkorb wird der E-Mail angehängt.

Also noch mal danke an DaveS und Micke, der Fehler wurde behoben.

PS.: Sagt mal Bitte, was bedeutet der rote brennende Ordner?

Beitrag wurde zuletzt am 14.09.12 um 10:10:05 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: E-Mail Anbindung von UserControls 
Autor: ModeratorDaveS (Moderator)
Datum: 14.09.12 10:52

Das ist vermutlich ein Zeichen, dass mindestens (glaube ich) zehn Beiträge zum Thread gehören, also ein brennendes Thema (ja, echt).

________
Alle Angaben ohne Gewähr. Keine Haftung für Vorschläge, Tipps oder sonstige Hilfe, falls es schiefgeht, nur Zeit verschwendet oder man sonst nicht zufrieden ist

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel