J'ai quelques grandes, spécifiquement formatées à la demande du client, tables avec entrée. Il ressemble à ce qui suit ...Comment puis-je copier HTML ASP.NET VB Formulaire/Table à envoyer par e-mail
<body id="Body" class="Window" runat="server">
<form id="Form" runat="server" defaultbutton="SubmitLinkButton">
<!-- Markup for a the SubmitLinkButton and DropDownList -->
<!-- to pick which Table is shown -->
<asp:Table ID="Table1" runat="server">
<asp:TableRow class="row" runat="server">
<asp:TableCell runat="server">
<pre> Some Input1 </pre>
<pre>___________________</pre>
<pre>|___<asp:Textbox ID="Textbox1" runat="server"></asp:Textbox>____|</pre>
<pre>|_________________|</pre>
</asp:TableCell>
</asp:TableRow>
</asp:Table>
<asp:Table ID="Table2" runat="server">
<asp:TableRow class="row" runat="server">
<asp:TableCell runat="server">
<pre> Some Input2 </pre>
<pre>___________________</pre>
<pre>|___<asp:Textbox ID="Textbox2" runat="server"></asp:Textbox>____|</pre>
<pre>|_________________|</pre>
</asp:TableCell>
</asp:TableRow>
</asp:Table>
</form>
</body>
Underwhelming, non?
Une seule des quatre tables est visible ou non en fonction de la sélection choisie dans DropDownList. Chaque table a plus de 30-40 entrées et chaque zone avec des entrées est formatée uniquement. Tous formatés de la même façon (^^^ comme ci-dessus ^^^), mais on peut avoir une section avec 3 entrées et beaucoup de texte ou 8 entrées et peu de texte ou pas d'entrées et juste une section de texte.
Espérons que tout cela a du sens. Ce que je dois comprendre, c'est comment permettre à l'utilisateur de «soumettre» le formulaire via le SubmitLinkButton
, ce qui enverra un e-mail identique au formulaire qu'ils ont rempli pour un groupe d'adresses e-mail configurées dans le SystemFramwork.config
.
J'ai essayé de le faire, en utilisant Visual Basic
, avec RenderControl()
, mais je continuais à obtenir des erreurs en disant mes zones de texte nécessaires pour être à l'intérieur d'une forme avec runat="server"
en elle, et comme vous pouvez le voir dans mon code ci-dessus je cela. Donc, je ne suis pas sûr de ce qui se passait là-bas. Puisque le formulaire est formaté de manière personnalisée, Si je ne peux pas rendre le formulaire HTML d'une page à l'autre pour le rendre identique, je ne sais pas d'autre option que d'ajouter manuellement le balisage à l'e-mail, ce qui semble juste une perte de temps et des licenciements dans le projet.
Toute idée serait grandement appréciée!
Je suis encore travaille actuellement avec une solution pseudo qui ressemble à quelque chose comme ça ...
Public Sub SubmitLinkButton_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles SubmitLinkButton.Click
Dim result As String = vbNull
Dim stringWriter As New StringWriter()
Dim htmlWriter As New HtmlTextWriter(stringWriter)
'If the user selected something with the DropDown
If (DDL_Selection IsNot "")
Dim email As New MailMessage(FromConfigVar, ToConfigVar)
email.Subject = DDL_Selection.SelectedValue & " Table"
email.IsBodyHtml = True
Select Case DDL_Selection
Case "Table1"
Try
htmlWriter.RenderBeginTag(HtmlTextWriterTag.Table)
Table1.RenderControl(htmlWriter)
htmlWriter.RenderEndTag()
htmlWriter.Flush()
result = stringWriter.ToString()
Finally
htmlWriter.Close()
stringWriter.Close()
End Try
End Select
mailMessage.Body = result
Else
'Do nothing
End If
End Sub
Encore une fois, cette solution ne fonctionne pas, et je ne pense que je suis même près d'être sur la bonne voie. Je pensais juste que je montrerais ce que j'ai essayé.
Seriez-vous en mesure de prendre une capture d'écran et de l'envoyer? – wazz
De quelle partie? L'erreur ou un échantillon de la table? – brettwbyron
Ah, non, je veux dire comme une réponse au problème, pouvez-vous prendre une capture d'écran (et aussi soumettre le formulaire si nécessaire) et l'envoyer aux personnes sur la liste d'email. – wazz